@anov/3d-ability 0.0.4-alpha9 → 0.0.5

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 (84) hide show
  1. package/dist/camera/index.d.ts +4 -0
  2. package/dist/camera/index.js +44 -26
  3. package/dist/camera/index.js.map +1 -1
  4. package/dist/environment/sky/index.js +5 -2
  5. package/dist/environment/sky/index.js.map +1 -1
  6. package/dist/index.d.ts +4 -5
  7. package/dist/index.js +4 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/line/round-curve.d.ts +1 -0
  10. package/dist/line/round-curve.js +6 -3
  11. package/dist/line/round-curve.js.map +1 -1
  12. package/dist/poi/2D/index.d.ts +12 -0
  13. package/dist/poi/{core/Css2D.js → 2D/index.js} +117 -118
  14. package/dist/poi/2D/index.js.map +1 -0
  15. package/dist/{poiBack → poi/3D}/index.d.ts +2 -2
  16. package/dist/{poiBack → poi/3D}/index.js +3 -4
  17. package/dist/poi/3D/index.js.map +1 -0
  18. package/dist/poi/3D/type.js.map +1 -0
  19. package/dist/poi/Poi.d.ts +12 -0
  20. package/dist/poi/{core/SpriteBase.js → Poi.js} +31 -34
  21. package/dist/poi/Poi.js.map +1 -0
  22. package/dist/poi/Sprite/index.d.ts +22 -0
  23. package/dist/poi/Sprite/index.js +271 -0
  24. package/dist/poi/Sprite/index.js.map +1 -0
  25. package/dist/poi/Sprite/index2.d.ts +14 -0
  26. package/dist/poi/{core/Sprite.js → Sprite/index2.js} +102 -52
  27. package/dist/poi/Sprite/index2.js.map +1 -0
  28. package/dist/poi/index.d.ts +4 -12
  29. package/dist/poi/index.js +4 -28
  30. package/dist/poi/index.js.map +1 -1
  31. package/dist/poi/utils/element.d.ts +5 -0
  32. package/dist/poi/utils/element.js +96 -0
  33. package/dist/poi/utils/element.js.map +1 -0
  34. package/dist/poi/utils/type.d.ts +13 -22
  35. package/dist/poi/utils/type.js +4 -16
  36. package/dist/poi/utils/type.js.map +1 -1
  37. package/dist/weather/fog2DMesh.d.ts +14 -0
  38. package/dist/{poi/core/Css3D.js → weather/fog2DMesh.js} +66 -13
  39. package/dist/weather/fog2DMesh.js.map +1 -0
  40. package/dist/weather/glsl/fog.d.ts +2 -0
  41. package/dist/weather/glsl/fog.js +3 -0
  42. package/dist/weather/glsl/fog.js.map +1 -0
  43. package/dist/weather/index.d.ts +4 -0
  44. package/dist/{poi/core/Base.js → weather/index.js} +7 -19
  45. package/dist/weather/index.js.map +1 -0
  46. package/package.json +3 -3
  47. package/dist/animation/index.d.ts +0 -0
  48. package/dist/animation/index.js +0 -2
  49. package/dist/animation/index.js.map +0 -1
  50. package/dist/core/mouseDrawe.d.ts +0 -2
  51. package/dist/core/mouseDrawe.js +0 -2
  52. package/dist/core/mouseDrawe.js.map +0 -1
  53. package/dist/environment/cloud/cloud.d.ts +0 -1
  54. package/dist/environment/cloud/cloud.js +0 -2
  55. package/dist/environment/cloud/cloud.js.map +0 -1
  56. package/dist/environment/cloud/index.d.ts +0 -7
  57. package/dist/environment/cloud/index.js +0 -61
  58. package/dist/environment/cloud/index.js.map +0 -1
  59. package/dist/poi/core/Base.d.ts +0 -7
  60. package/dist/poi/core/Base.js.map +0 -1
  61. package/dist/poi/core/Css2D.d.ts +0 -20
  62. package/dist/poi/core/Css2D.js.map +0 -1
  63. package/dist/poi/core/Css3D.d.ts +0 -1
  64. package/dist/poi/core/Css3D.js.map +0 -1
  65. package/dist/poi/core/Sprite.d.ts +0 -11
  66. package/dist/poi/core/Sprite.js.map +0 -1
  67. package/dist/poi/core/SpriteBase.d.ts +0 -11
  68. package/dist/poi/core/SpriteBase.js.map +0 -1
  69. package/dist/poi/utils/base64.d.ts +0 -3
  70. package/dist/poi/utils/base64.js +0 -4
  71. package/dist/poi/utils/base64.js.map +0 -1
  72. package/dist/poi/utils/css.d.ts +0 -35
  73. package/dist/poi/utils/css.js +0 -41
  74. package/dist/poi/utils/css.js.map +0 -1
  75. package/dist/poiBack/assets.d.ts +0 -2
  76. package/dist/poiBack/assets.js +0 -3
  77. package/dist/poiBack/assets.js.map +0 -1
  78. package/dist/poiBack/dom.d.ts +0 -2
  79. package/dist/poiBack/dom.js +0 -36
  80. package/dist/poiBack/dom.js.map +0 -1
  81. package/dist/poiBack/index.js.map +0 -1
  82. package/dist/poiBack/type.js.map +0 -1
  83. /package/dist/{poiBack → poi/3D}/type.d.ts +0 -0
  84. /package/dist/{poiBack → poi/3D}/type.js +0 -0
@@ -14,70 +14,80 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
14
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; }
15
15
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
16
  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); }
17
- import { Object3D, Vector2 } from '@anov/3d-core';
18
- import { EAnimationType, EPoiType, EventType } from "../utils/type";
19
- import { getBasePoiStyle, getPanelStyle } from "../utils/css";
20
- var DafultOption = {
17
+ /* eslint-disable no-case-declarations */
18
+ import { Vector2 } from '@anov/3d-core';
19
+ import gsap from 'gsap';
20
+ import { EAnimationType, EventType } from "../utils/type";
21
+ import { createContentElement, createTitleElement } from "../utils/element";
22
+ import Poi from "../Poi";
23
+ var _default = {
21
24
  animation: {
22
25
  type: EAnimationType.fadeIn,
23
26
  duration: 0.3
24
27
  }
25
28
  };
26
- var Css2D = /*#__PURE__*/function (_Object3D) {
27
- _inherits(Css2D, _Object3D);
28
- var _super = _createSuper(Css2D);
29
- function Css2D(type, data, option) {
29
+ var Css2DPoi = /*#__PURE__*/function (_Poi) {
30
+ _inherits(Css2DPoi, _Poi);
31
+ var _super = _createSuper(Css2DPoi);
32
+ function Css2DPoi(data) {
30
33
  var _this;
31
- _classCallCheck(this, Css2D);
32
- _this = _super.call(this);
34
+ var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
35
+ _classCallCheck(this, Css2DPoi);
36
+ _this = _super.call(this, data, option);
33
37
  _defineProperty(_assertThisInitialized(_this), "element", void 0);
34
- _defineProperty(_assertThisInitialized(_this), "contentDom", void 0);
35
38
  _defineProperty(_assertThisInitialized(_this), "isCSS2DObject", void 0);
36
39
  _defineProperty(_assertThisInitialized(_this), "center", void 0);
37
- _defineProperty(_assertThisInitialized(_this), "poiType", void 0);
38
- _defineProperty(_assertThisInitialized(_this), "data", void 0);
39
- _defineProperty(_assertThisInitialized(_this), "option", void 0);
40
- _this.poiType = type;
41
- _this.data = data;
42
- _this.option = _objectSpread(_objectSpread({}, DafultOption), option);
43
- _this.element = _this.createElement();
40
+ _this.option = _objectSpread(_objectSpread({}, _default), option);
41
+
42
+ // 创建容器
43
+ _this.element = _this.getElement();
44
44
  if (!_this.element) throw new Error('Cannot generate HTMLElement element');
45
- _this.isCSS2DObject = true;
45
+
46
+ // 保留Css2D 初始设置
46
47
  _this.element.style.position = 'absolute';
47
48
  _this.element.style.userSelect = 'none';
48
49
  _this.element.setAttribute('draggable', 'false');
50
+ _this.isCSS2DObject = true;
49
51
  _this.center = new Vector2(0.5, 0.5); // ( 0, 0 ) is the lower left; ( 1, 1 ) is the top right
50
52
 
53
+ _this.option.animation && _this.setAnimation(_this.option.animation);
54
+ // 执行动画
55
+ _this.play();
56
+
57
+ // 保留Css2D 事件监听
51
58
  _this.addEventListener('removed', function () {
52
59
  _this.traverse(function (object) {
53
- if (object.element instanceof Element && object.element.parentNode !== null) object.element.parentNode.removeChild(object.element);
60
+ // @ts-ignore
61
+ if (object.element instanceof Element && object.element.parentNode !== null)
62
+ // @ts-ignore
63
+ object.element.parentNode.removeChild(object.element);
54
64
  });
55
65
  });
56
- _this.setAttribute();
57
66
  return _this;
58
67
  }
59
- _createClass(Css2D, [{
60
- key: "createElement",
61
- value: function createElement() {
68
+
69
+ // 创建2D容器
70
+ _createClass(Css2DPoi, [{
71
+ key: "getElement",
72
+ value: function getElement() {
62
73
  var _this2 = this;
63
74
  var element;
64
75
  // 直接传递DOM元素
65
76
  if (this.data instanceof HTMLElement) {
66
77
  element = this.data;
67
78
  } else {
68
- switch (this.poiType) {
69
- case EPoiType.Base:
70
- // 基础POI点
71
- element = this.titlePanel(this.data);
72
- break;
73
- case EPoiType.Panel:
74
- // 面板
75
- element = this.contentPanel(this.data);
76
- break;
79
+ if (typeof this.data === 'string') {
80
+ element = createTitleElement(this.data, this.option);
81
+ } else if (_typeof(this.data) === 'object') {
82
+ var _this$data = this.data,
83
+ title = _this$data.title,
84
+ content = _this$data.content;
85
+ if (title && content) element = createContentElement(this.data, this.option);else if (title) element = createTitleElement(title, this.option);
77
86
  }
78
87
  }
79
88
  EventType.forEach(function (type) {
80
- element.addEventListener(type.name, function (event) {
89
+ element && element.addEventListener(type.name, function (event) {
90
+ // @ts-ignore
81
91
  (_this2._listeners[type.name] || []).forEach(function (cb) {
82
92
  cb(event);
83
93
  });
@@ -85,97 +95,86 @@ var Css2D = /*#__PURE__*/function (_Object3D) {
85
95
  });
86
96
  return element;
87
97
  }
98
+
99
+ // 播放动画
88
100
  }, {
89
- key: "setAttribute",
90
- value: function setAttribute() {
101
+ key: "play",
102
+ value: function play() {
91
103
  var _this3 = this;
92
- var hasExecuted = false;
93
- // 执行渐显、打印内容等操作
94
- this.onAfterRender = function () {
95
- if (hasExecuted) return;
96
- setTimeout(function () {
97
- _this3.element.style.opacity = '1';
98
- var print = _this3.option.print;
99
- if (_this3.poiType === EPoiType.Panel && print) _this3.print(_this3.contentDom, _this3.data.content);
100
- });
101
- hasExecuted = true;
102
- };
103
- }
104
- }, {
105
- key: "titlePanel",
106
- value: function titlePanel(data) {
107
- var defaultStyle = getBasePoiStyle();
108
- this.assignStyle(defaultStyle);
109
- var containerDom = document.createElement('div');
110
- Object.keys(defaultStyle).forEach(function (key) {
111
- containerDom.style[key] = defaultStyle[key];
112
- });
113
- containerDom.innerText = data;
114
- return containerDom;
115
- }
116
- }, {
117
- key: "contentPanel",
118
- value: function contentPanel(data) {
119
- var _this4 = this;
120
- var defaultStyle = getPanelStyle();
121
- this.assignStyle(defaultStyle.container);
122
- var containerDom = document.createElement('div');
123
- Object.keys(defaultStyle.container).forEach(function (key) {
124
- containerDom.style[key] = defaultStyle.container[key];
125
- });
126
- var titleDom = document.createElement('div');
127
- titleDom.innerText = data.title;
128
- Object.keys(defaultStyle.title).forEach(function (key) {
129
- titleDom.style[key] = defaultStyle.title[key];
130
- });
131
- containerDom.appendChild(titleDom);
132
- this.contentDom = document.createElement('div');
133
- if (!this.option.print) this.contentDom.innerText = data.content;
134
- Object.keys(defaultStyle.content).forEach(function (key) {
135
- _this4.contentDom.style[key] = defaultStyle.content[key];
136
- });
137
- containerDom.appendChild(this.contentDom);
138
- return containerDom;
139
- }
140
- }, {
141
- key: "assignStyle",
142
- value: function assignStyle(style) {
143
- var _this$option = this.option,
144
- width = _this$option.width,
145
- height = _this$option.height,
146
- img = _this$option.img,
147
- animation = _this$option.animation;
148
- if (animation) {
149
- switch (animation.type) {
150
- case EAnimationType.appear:
104
+ this.animation.forEach(function (item) {
105
+ switch (item.type) {
151
106
  case EAnimationType.fadeIn:
152
- style.opacity = 0;
153
- style.transition = "opacity ".concat(animation.duration, "s ease");
107
+ _this3.element.style.opacity = '0';
154
108
  break;
155
109
  case EAnimationType.grow:
110
+ _this3.element.style.scale = '.2';
111
+ break;
112
+ case EAnimationType.print:
113
+ var contentElement = _this3.element.querySelector('[tag="content"]');
114
+ if (contentElement) contentElement.innerHTML = '';else _this3.element.innerHTML = '';
156
115
  break;
157
116
  }
158
- }
159
- if (width) style.width = "".concat(width, "px");
160
- if (height) style.height = "".concat(height, "px");
161
- if (img) style.backgroundImage = "url(".concat(img, ")");
162
- }
163
- }, {
164
- key: "print",
165
- value: function print(container, text) {
166
- var index = 0;
167
- var p = function p() {
168
- if (index < text.length) {
169
- container.textContent += text.charAt(index);
170
- index++;
171
- setTimeout(p, 20); // 调整打印速度,这里是每个字符间隔30毫秒
172
- }
173
- };
117
+ });
118
+ var hasExecuted = false;
119
+ this.onAfterRender = function () {
120
+ if (hasExecuted) return;
121
+ _this3.animation.forEach(function (item) {
122
+ switch (item.type) {
123
+ case EAnimationType.fadeIn:
124
+ gsap.fromTo(_this3.element, {
125
+ opacity: 0
126
+ }, {
127
+ opacity: 1,
128
+ duration: item.duration,
129
+ repeat: 0,
130
+ ease: 'none'
131
+ });
132
+ break;
133
+ case EAnimationType.grow:
134
+ gsap.fromTo(_this3.element, {
135
+ scale: 0.2
136
+ }, {
137
+ scale: 1,
138
+ duration: item.duration,
139
+ repeat: 0,
140
+ ease: 'power2.out'
141
+ });
142
+ break;
143
+ case EAnimationType.print:
144
+ var element = _this3.element.querySelector('[tag="content"]');
145
+ var text;
146
+ if (element) {
147
+ text = _this3.data.content;
148
+ } else {
149
+ element = _this3.element;
150
+ text = _this3.data.title || _this3.data;
151
+ }
152
+ var index = 0;
153
+ var print = function print() {
154
+ // 添加当前字符到文本元素
155
+ element.innerHTML += text.charAt(index);
156
+ index++;
157
+ // 使用GSAP创建动画
158
+ gsap.to(element, {
159
+ duration: item.duration,
160
+ // 每个字符的持续时间
161
+ ease: 'power1.inOut',
162
+ // 缓动函数
163
+ onComplete: function onComplete() {
164
+ return index < text.length ? print() : null;
165
+ } // 如果还有字符,则继续打印,否则完成动画
166
+ });
167
+ };
174
168
 
175
- p();
169
+ print();
170
+ break;
171
+ }
172
+ });
173
+ hasExecuted = true;
174
+ };
176
175
  }
177
176
  }]);
178
- return Css2D;
179
- }(Object3D);
180
- export default Css2D;
181
- //# sourceMappingURL=Css2D.js.map
177
+ return Css2DPoi;
178
+ }(Poi);
179
+ export default Css2DPoi;
180
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Vector2","gsap","EAnimationType","EventType","createContentElement","createTitleElement","Poi","_default","animation","type","fadeIn","duration","Css2DPoi","data","option","element","getElement","Error","style","position","userSelect","setAttribute","isCSS2DObject","center","setAnimation","play","addEventListener","traverse","object","Element","parentNode","removeChild","HTMLElement","title","content","forEach","name","event","_listeners","cb","item","opacity","grow","scale","print","contentElement","querySelector","innerHTML","hasExecuted","onAfterRender","fromTo","repeat","ease","text","index","charAt","to","onComplete","length"],"sources":["../../../src/poi/2D/index.ts"],"sourcesContent":["/* eslint-disable no-case-declarations */\nimport { Vector2 } from '@anov/3d-core'\nimport gsap from 'gsap'\nimport { EAnimationType, EventType } from '../utils/type'\nimport type { IEventType, IOption } from '../utils/type'\nimport { createContentElement, createTitleElement } from '../utils/element'\nimport Poi from '../Poi'\n\nconst _default = {\n animation: {\n type: EAnimationType.fadeIn,\n duration: 0.3,\n },\n}\n\nclass Css2DPoi extends Poi {\n element!: HTMLElement\n isCSS2DObject!: boolean\n center!: Vector2\n\n constructor(data: any, option: IOption = {}) {\n super(data, option)\n\n this.option = { ..._default, ...option }\n\n // 创建容器\n this.element = this.getElement()\n\n if (!this.element)\n throw new Error('Cannot generate HTMLElement element')\n\n // 保留Css2D 初始设置\n this.element.style.position = 'absolute'\n this.element.style.userSelect = 'none'\n this.element.setAttribute('draggable', 'false')\n\n this.isCSS2DObject = true\n this.center = new Vector2(0.5, 0.5) // ( 0, 0 ) is the lower left; ( 1, 1 ) is the top right\n\n this.option.animation && this.setAnimation(this.option.animation)\n // 执行动画\n this.play()\n\n // 保留Css2D 事件监听\n this.addEventListener('removed', () => {\n this.traverse((object) => {\n // @ts-ignore\n if (object.element instanceof Element && object.element.parentNode !== null)\n // @ts-ignore\n object.element.parentNode.removeChild(object.element)\n })\n })\n }\n\n // 创建2D容器\n getElement() {\n let element!: HTMLElement\n // 直接传递DOM元素\n if (this.data instanceof HTMLElement) {\n element = this.data\n }\n else {\n if (typeof this.data === 'string') {\n element = createTitleElement(this.data, this.option)\n }\n else if (typeof this.data === 'object') {\n const { title, content } = this.data\n if (title && content)\n element = createContentElement(this.data, this.option)\n else if (title)\n element = createTitleElement(title, this.option)\n }\n }\n\n EventType.forEach((type: IEventType) => {\n element && element.addEventListener(type.name, (event) => {\n // @ts-ignore\n (this._listeners[type.name] || []).forEach((cb: Function) => {\n cb(event)\n })\n })\n })\n return element\n }\n\n // 播放动画\n play() {\n this.animation.forEach((item) => {\n switch (item.type) {\n case EAnimationType.fadeIn:\n this.element.style.opacity = '0'\n break\n case EAnimationType.grow:\n this.element.style.scale = '.2'\n break\n case EAnimationType.print:\n const contentElement = this.element.querySelector('[tag=\"content\"]')\n if (contentElement)\n contentElement.innerHTML = ''\n else\n this.element.innerHTML = ''\n break\n }\n })\n\n let hasExecuted = false\n this.onAfterRender = () => {\n if (hasExecuted)\n return\n this.animation.forEach((item) => {\n switch (item.type) {\n case EAnimationType.fadeIn:\n gsap.fromTo(this.element, { opacity: 0 }, {\n opacity: 1,\n duration: item.duration,\n repeat: 0,\n ease: 'none',\n })\n break\n case EAnimationType.grow:\n gsap.fromTo(this.element, { scale: 0.2 }, {\n scale: 1,\n duration: item.duration,\n repeat: 0,\n ease: 'power2.out',\n })\n break\n case EAnimationType.print:\n\n let element = this.element.querySelector('[tag=\"content\"]') as HTMLElement\n let text: string\n if (element) {\n text = this.data.content\n }\n else {\n element = this.element\n text = this.data.title || this.data\n }\n\n let index = 0\n const print = () => {\n // 添加当前字符到文本元素\n element.innerHTML += text.charAt(index)\n index++\n // 使用GSAP创建动画\n gsap.to(element, {\n duration: item.duration, // 每个字符的持续时间\n ease: 'power1.inOut', // 缓动函数\n onComplete: () => index < text.length ? print() : null, // 如果还有字符,则继续打印,否则完成动画\n })\n }\n print()\n break\n }\n })\n hasExecuted = true\n }\n }\n}\n\nexport default Css2DPoi"],"mappings":"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"}
@@ -9,8 +9,8 @@ declare class Poi {
9
9
  position: number[] | undefined;
10
10
  };
11
11
  /**
12
- * 是否锁定镜头,标牌一直面向镜头
13
- */
12
+ * 是否锁定镜头,标牌一直面向镜头
13
+ */
14
14
  private updateAxis;
15
15
  private updateScale;
16
16
  delete(option: IPOIOption): void;
@@ -6,8 +6,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
6
6
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
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); }
8
8
  import { Vector3, create3DLabel, use } from '@anov/3d-core';
9
- import { getLastValue } from "../utils";
10
- import { getDom } from "./dom";
9
+ import { getLastValue } from "../../utils";
11
10
  // 距离限制范围的值,用于计算缩放比例
12
11
  var minDistance = 0.1;
13
12
  var maxDistance = 1000000;
@@ -87,8 +86,8 @@ var Poi = /*#__PURE__*/function () {
87
86
  }
88
87
 
89
88
  /**
90
- * 是否锁定镜头,标牌一直面向镜头
91
- */
89
+ * 是否锁定镜头,标牌一直面向镜头
90
+ */
92
91
  }, {
93
92
  key: "updateAxis",
94
93
  value: function updateAxis(object) {
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Vector3","create3DLabel","use","getLastValue","minDistance","maxDistance","Poi","option","visible","position","name","scale","poiLabel","getDom","receiveShadow","copy","fromArray","devicePixelRatio","window","vScale","multiplyScalar","clone","useScene","scene","camera","console","log","add","cssObjects","push","cube","useframe","objectName","traverse","child","cubeWorldPosition","getWorldPosition","orbitControls","addEventListener","lockAxis","updateAxis","autoSize","updateScale","id","object","oriEuler","rotation","cameraPosition","objectPosition","distance","distanceTo","clampedDistance","Math","max","min","i","length","remove"],"sources":["../../../src/poi/3D/index.ts"],"sourcesContent":["import {\n Vector3,\n create3DLabel,\n use,\n} from '@anov/3d-core'\nimport { getLastValue } from '../../utils'\nimport type { CustomCssObjec, IPOIOption } from './type'\n\n// 距离限制范围的值,用于计算缩放比例\nconst minDistance = 0.1\nconst maxDistance = 1000000\n\nclass Poi {\n private cssObjects: CustomCssObjec[] = []\n\n constructor() { }\n // 添加POI点信息\n public create(option: IPOIOption) {\n const { visible, position, name, scale } = option\n\n const poiLabel = create3DLabel(getDom(option)) as CustomCssObjec\n // 对象名称\n poiLabel.name = getLastValue(name, 'poiLabel')\n poiLabel.receiveShadow = true\n poiLabel.option = option\n // 是否可见\n poiLabel.visible = getLastValue(visible, true)\n // 设置poi局部位置\n position && poiLabel.position.copy(new Vector3().fromArray(position))\n // poiLabel.position.set(0, (200 * 0.023) / 2 + 3, 0);\n\n const devicePixelRatio = window.devicePixelRatio || 1\n // 调整场景中对象的缩放比例\n\n const vScale = new Vector3(0.023, 0.023, 0.023)\n vScale.multiplyScalar(scale)\n poiLabel.scale.copy(vScale.clone())\n const { scene, camera } = use.useScene()\n console.log('scene:', scene)\n // 添加到场景\n scene?.add(poiLabel)\n this.cssObjects.push(poiLabel)\n let cube\n use.useframe(() => {\n if (!cube) {\n // 假设需要查找的对象名称为 'myObject'\n const objectName = 'GY_zj_gangjiegou_01'\n // 遍历场景中的所有对象\n scene.traverse((child) => {\n // 检查对象的名称是否匹配所需名称\n if (child.name === objectName) {\n // 找到了匹配的对象,可以对其进行操作或者保存引用\n console.log('Found object with name:', objectName)\n cube = child\n }\n })\n }\n if (cube) {\n // 根据目标物体的位置和相机的位置,更新 POI 点的位置\n const cubeWorldPosition = new Vector3()\n cube.getWorldPosition(cubeWorldPosition)\n // console.log('cubeWorldPosition:', cubeWorldPosition)\n\n poiLabel.position.copy(cubeWorldPosition.clone())\n }\n })\n\n use.useScene().orbitControls?.addEventListener('change', () => {\n option.lockAxis && this.updateAxis(poiLabel)\n if ('autoSize' in option && !option.autoSize)\n this.updateScale(poiLabel)\n })\n\n return {\n id: poiLabel.id,\n name,\n visible,\n position,\n }\n }\n\n /**\n * 是否锁定镜头,标牌一直面向镜头\n */\n private updateAxis(object: CustomCssObjec) {\n const { camera } = use.useScene()\n // 获取原有的旋转角度\n const oriEuler = object.rotation\n // 根据锁定的轴进行旋转\n camera && object.rotation.copy(camera.rotation)\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n private updateScale(object: CustomCssObjec) {\n const { camera } = use.useScene()\n // 获取相机和物体的世界坐标位置\n const cameraPosition = camera?.position\n const objectPosition = object.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\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n object.scale.copy(new Vector3(1, 1, 1).multiplyScalar(clampedDistance * 0.0012))\n }\n\n // 删除POI点信息\n public delete(option: IPOIOption) {\n const { scene } = use.useScene()\n for (let i = 0; i < this.cssObjects.length; i++) {\n if (this.cssObjects[i].id === option.id) {\n scene?.remove(this.cssObjects[i])\n break\n }\n }\n }\n\n public update(option: IPOIOption) { }\n}\n\nexport default Poi\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EPOIType"],"sources":["../../../src/poi/3D/type.ts"],"sourcesContent":["import type {\n CSS3DObject,\n} from '@anov/3d-core'\n\nexport enum EPOIType {\n base,\n line,\n}\n\nexport interface CustomCssObjec extends CSS3DObject {\n option: IPOIOption\n}\n\nexport interface IPOIOption {\n id?: number | string // 唯一ID\n name?: string // 别名\n title: string\n type?: EPOIType\n position?: Array<number> // 聚焦目标位置[x,y,z] 单位cm positon和location字段必须有一个非空\n location?: Array<number> // 聚焦目标位置[经度,纬度,高度] 单位m positon和location字段必须有一个非空\n visible?: boolean\n autoSize?: boolean // 是否支持缩放\n lockAxis?: Boolean // 是否锁定镜头(标牌一直面向镜头)\n style?: object // POI样式字符串\n}\n"],"mappings":"AAIA,WAAYA,QAAQ;AAGnB,WAHWA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ"}
@@ -0,0 +1,12 @@
1
+ import { Object3D } from '@anov/3d-core';
2
+ import type { IOption } from './utils/type';
3
+ declare class Poi extends Object3D {
4
+ data: any;
5
+ option: IOption;
6
+ animation: Array<any>;
7
+ constructor(data: any, option: IOption);
8
+ setAnimation(animation: object | Array<any>): void;
9
+ play(): void;
10
+ destroy(): void;
11
+ }
12
+ export default Poi;
@@ -12,47 +12,44 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
12
12
  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; }
13
13
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
14
  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); }
15
- import { Sprite, SpriteMaterial, Vector2 } from '@anov/3d-core';
16
- // @ts-ignore
17
- import { Curtains } from 'curtainsjs';
18
- var AnovSprite = /*#__PURE__*/function (_Sprite) {
19
- _inherits(AnovSprite, _Sprite);
20
- var _super = _createSuper(AnovSprite);
21
- function AnovSprite(type, data, option) {
15
+ import { Object3D } from '@anov/3d-core';
16
+ var Poi = /*#__PURE__*/function (_Object3D) {
17
+ _inherits(Poi, _Object3D);
18
+ var _super = _createSuper(Poi);
19
+ function Poi(data, option) {
22
20
  var _this;
23
- _classCallCheck(this, AnovSprite);
24
- _this = _super.call(this, new SpriteMaterial());
25
- _defineProperty(_assertThisInitialized(_this), "poiType", void 0);
21
+ _classCallCheck(this, Poi);
22
+ _this = _super.call(this);
26
23
  _defineProperty(_assertThisInitialized(_this), "data", void 0);
27
24
  _defineProperty(_assertThisInitialized(_this), "option", void 0);
28
- _this.poiType = type;
25
+ _defineProperty(_assertThisInitialized(_this), "animation", []);
29
26
  _this.data = data;
30
- _this.create();
27
+ _this.option = option;
31
28
  return _this;
32
29
  }
33
- _createClass(AnovSprite, [{
34
- key: "create",
35
- value: function create() {
36
- var _this$option = this.option,
37
- _this$option$scale = _this$option.scale,
38
- scale = _this$option$scale === void 0 ? 1 : _this$option$scale,
39
- animation = _this$option.animation;
40
- // 精灵的锚点
41
- this.center = new Vector2(0.5, 0);
42
- this.scale.setX(scale);
43
- this.scale.setZ(scale);
44
- this.visible = false;
45
- this.dom2Canvas();
30
+
31
+ // 设置动画属性
32
+ _createClass(Poi, [{
33
+ key: "setAnimation",
34
+ value: function setAnimation(animation) {
35
+ if (!animation) return;
36
+ if (Array.isArray(animation)) this.animation = animation;else this.animation = [animation];
46
37
  }
38
+
39
+ // 播放动画
47
40
  }, {
48
- key: "dom2Canvas",
49
- value: function dom2Canvas() {
50
- var curtains = new Curtains({
51
- container: 'canvas'
52
- });
41
+ key: "play",
42
+ value: function play() {}
43
+
44
+ // 销毁
45
+ }, {
46
+ key: "destroy",
47
+ value: function destroy() {
48
+ this.remove();
49
+ this.removeFromParent();
53
50
  }
54
51
  }]);
55
- return AnovSprite;
56
- }(Sprite);
57
- export default AnovSprite;
58
- //# sourceMappingURL=SpriteBase.js.map
52
+ return Poi;
53
+ }(Object3D);
54
+ export default Poi;
55
+ //# sourceMappingURL=Poi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Object3D","Poi","data","option","animation","Array","isArray","remove","removeFromParent"],"sources":["../../src/poi/Poi.ts"],"sourcesContent":["import { Object3D } from '@anov/3d-core'\nimport type { IOption } from './utils/type'\n\nclass Poi extends Object3D {\n data!: any\n option!: IOption\n animation: Array<any> = []\n\n constructor(data: any, option: IOption) {\n super()\n this.data = data\n this.option = option\n }\n\n // 设置动画属性\n setAnimation(animation: object | Array<any>) {\n if (!animation)\n return\n if (Array.isArray(animation))\n this.animation = animation\n else\n this.animation = [animation]\n }\n\n // 播放动画\n play() {}\n\n // 销毁\n destroy() {\n this.remove()\n this.removeFromParent()\n }\n}\n\nexport default Poi"],"mappings":";;;;;;;;;;;;;;AAAA,SAASA,QAAQ,QAAQ,eAAe;AAAA,IAGlCC,GAAG;EAAA;EAAA;EAKP,aAAYC,IAAS,EAAEC,MAAe,EAAE;IAAA;IAAA;IACtC;IAAO;IAAA;IAAA,4DAHe,EAAE;IAIxB,MAAKD,IAAI,GAAGA,IAAI;IAChB,MAAKC,MAAM,GAAGA,MAAM;IAAA;EACtB;;EAEA;EAAA;IAAA;IAAA,OACA,sBAAaC,SAA8B,EAAE;MAC3C,IAAI,CAACA,SAAS,EACZ;MACF,IAAIC,KAAK,CAACC,OAAO,CAACF,SAAS,CAAC,EAC1B,IAAI,CAACA,SAAS,GAAGA,SAAS,MAE1B,IAAI,CAACA,SAAS,GAAG,CAACA,SAAS,CAAC;IAChC;;IAEA;EAAA;IAAA;IAAA,OACA,gBAAO,CAAC;;IAER;EAAA;IAAA;IAAA,OACA,mBAAU;MACR,IAAI,CAACG,MAAM,EAAE;MACb,IAAI,CAACC,gBAAgB,EAAE;IACzB;EAAC;EAAA;AAAA,EA5BeR,QAAQ;AA+B1B,eAAeC,GAAG"}
@@ -0,0 +1,22 @@
1
+ import type { Raycaster } from '@anov/3d-core';
2
+ import { BufferGeometry, SpriteMaterial, Vector2 } from '@anov/3d-core';
3
+ import type { IOption } from '../utils/type';
4
+ import Poi from '../Poi';
5
+ declare class SpritePoi extends Poi {
6
+ geometry: BufferGeometry;
7
+ center: Vector2;
8
+ material: SpriteMaterial;
9
+ isSprite: boolean;
10
+ type: string;
11
+ data: any;
12
+ option: IOption;
13
+ animation: Array<any>;
14
+ constructor(data: any, option: IOption);
15
+ private getGeometry;
16
+ private setMaterial;
17
+ setAnimation(animation: object | Array<any>): void;
18
+ play(): void;
19
+ addEventListener(type: string, cb: any): () => void;
20
+ raycast(raycaster: Raycaster, intersects: any): void;
21
+ }
22
+ export default SpritePoi;