@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.
- package/dist/camera/index.d.ts +4 -0
- package/dist/camera/index.js +44 -26
- package/dist/camera/index.js.map +1 -1
- package/dist/environment/sky/index.js +5 -2
- package/dist/environment/sky/index.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/line/round-curve.d.ts +1 -0
- package/dist/line/round-curve.js +6 -3
- package/dist/line/round-curve.js.map +1 -1
- package/dist/poi/2D/index.d.ts +12 -0
- package/dist/poi/{core/Css2D.js → 2D/index.js} +117 -118
- package/dist/poi/2D/index.js.map +1 -0
- package/dist/{poiBack → poi/3D}/index.d.ts +2 -2
- package/dist/{poiBack → poi/3D}/index.js +3 -4
- package/dist/poi/3D/index.js.map +1 -0
- package/dist/poi/3D/type.js.map +1 -0
- package/dist/poi/Poi.d.ts +12 -0
- package/dist/poi/{core/SpriteBase.js → Poi.js} +31 -34
- package/dist/poi/Poi.js.map +1 -0
- package/dist/poi/Sprite/index.d.ts +22 -0
- package/dist/poi/Sprite/index.js +271 -0
- package/dist/poi/Sprite/index.js.map +1 -0
- package/dist/poi/Sprite/index2.d.ts +14 -0
- package/dist/poi/{core/Sprite.js → Sprite/index2.js} +102 -52
- package/dist/poi/Sprite/index2.js.map +1 -0
- package/dist/poi/index.d.ts +4 -12
- package/dist/poi/index.js +4 -28
- package/dist/poi/index.js.map +1 -1
- package/dist/poi/utils/element.d.ts +5 -0
- package/dist/poi/utils/element.js +96 -0
- package/dist/poi/utils/element.js.map +1 -0
- package/dist/poi/utils/type.d.ts +13 -22
- package/dist/poi/utils/type.js +4 -16
- package/dist/poi/utils/type.js.map +1 -1
- package/dist/weather/fog2DMesh.d.ts +14 -0
- package/dist/{poi/core/Css3D.js → weather/fog2DMesh.js} +66 -13
- package/dist/weather/fog2DMesh.js.map +1 -0
- package/dist/weather/glsl/fog.d.ts +2 -0
- package/dist/weather/glsl/fog.js +3 -0
- package/dist/weather/glsl/fog.js.map +1 -0
- package/dist/weather/index.d.ts +4 -0
- package/dist/{poi/core/Base.js → weather/index.js} +7 -19
- package/dist/weather/index.js.map +1 -0
- package/package.json +3 -3
- package/dist/animation/index.d.ts +0 -0
- package/dist/animation/index.js +0 -2
- package/dist/animation/index.js.map +0 -1
- package/dist/core/mouseDrawe.d.ts +0 -2
- package/dist/core/mouseDrawe.js +0 -2
- package/dist/core/mouseDrawe.js.map +0 -1
- package/dist/environment/cloud/cloud.d.ts +0 -1
- package/dist/environment/cloud/cloud.js +0 -2
- package/dist/environment/cloud/cloud.js.map +0 -1
- package/dist/environment/cloud/index.d.ts +0 -7
- package/dist/environment/cloud/index.js +0 -61
- package/dist/environment/cloud/index.js.map +0 -1
- package/dist/poi/core/Base.d.ts +0 -7
- package/dist/poi/core/Base.js.map +0 -1
- package/dist/poi/core/Css2D.d.ts +0 -20
- package/dist/poi/core/Css2D.js.map +0 -1
- package/dist/poi/core/Css3D.d.ts +0 -1
- package/dist/poi/core/Css3D.js.map +0 -1
- package/dist/poi/core/Sprite.d.ts +0 -11
- package/dist/poi/core/Sprite.js.map +0 -1
- package/dist/poi/core/SpriteBase.d.ts +0 -11
- package/dist/poi/core/SpriteBase.js.map +0 -1
- package/dist/poi/utils/base64.d.ts +0 -3
- package/dist/poi/utils/base64.js +0 -4
- package/dist/poi/utils/base64.js.map +0 -1
- package/dist/poi/utils/css.d.ts +0 -35
- package/dist/poi/utils/css.js +0 -41
- package/dist/poi/utils/css.js.map +0 -1
- package/dist/poiBack/assets.d.ts +0 -2
- package/dist/poiBack/assets.js +0 -3
- package/dist/poiBack/assets.js.map +0 -1
- package/dist/poiBack/dom.d.ts +0 -2
- package/dist/poiBack/dom.js +0 -36
- package/dist/poiBack/dom.js.map +0 -1
- package/dist/poiBack/index.js.map +0 -1
- package/dist/poiBack/type.js.map +0 -1
- /package/dist/{poiBack → poi/3D}/type.d.ts +0 -0
- /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
|
-
|
|
18
|
-
import {
|
|
19
|
-
import
|
|
20
|
-
|
|
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
|
|
27
|
-
_inherits(
|
|
28
|
-
var _super = _createSuper(
|
|
29
|
-
function
|
|
29
|
+
var Css2DPoi = /*#__PURE__*/function (_Poi) {
|
|
30
|
+
_inherits(Css2DPoi, _Poi);
|
|
31
|
+
var _super = _createSuper(Css2DPoi);
|
|
32
|
+
function Css2DPoi(data) {
|
|
30
33
|
var _this;
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
_this.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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: "
|
|
90
|
-
value: function
|
|
101
|
+
key: "play",
|
|
102
|
+
value: function play() {
|
|
91
103
|
var _this3 = this;
|
|
92
|
-
|
|
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
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
169
|
+
print();
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
hasExecuted = true;
|
|
174
|
+
};
|
|
176
175
|
}
|
|
177
176
|
}]);
|
|
178
|
-
return
|
|
179
|
-
}(
|
|
180
|
-
export default
|
|
181
|
-
//# sourceMappingURL=
|
|
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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"}
|
|
@@ -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 "
|
|
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 {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
|
|
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,
|
|
24
|
-
_this = _super.call(this
|
|
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
|
|
25
|
+
_defineProperty(_assertThisInitialized(_this), "animation", []);
|
|
29
26
|
_this.data = data;
|
|
30
|
-
_this.
|
|
27
|
+
_this.option = option;
|
|
31
28
|
return _this;
|
|
32
29
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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: "
|
|
49
|
-
value: function
|
|
50
|
-
|
|
51
|
-
|
|
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
|
|
56
|
-
}(
|
|
57
|
-
export default
|
|
58
|
-
//# sourceMappingURL=
|
|
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;
|