@anov/3d-ability 0.0.6 → 0.0.8
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 +11 -7
- package/dist/camera/index.js +48 -45
- package/dist/camera/index.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/poi/2D/index.d.ts +1 -0
- package/dist/poi/2D/index.js +10 -0
- package/dist/poi/2D/index.js.map +1 -1
- package/dist/poi/3D/index.d.ts +12 -18
- package/dist/poi/3D/index.js +159 -123
- package/dist/poi/3D/index.js.map +1 -1
- package/dist/poi/3D/index1.d.ts +19 -0
- package/dist/poi/3D/index1.js +144 -0
- package/dist/poi/3D/index1.js.map +1 -0
- package/dist/poi/Sprite/index.js +44 -51
- package/dist/poi/Sprite/index.js.map +1 -1
- package/dist/poi/index.d.ts +2 -1
- package/dist/poi/index.js +2 -1
- package/dist/poi/index.js.map +1 -1
- package/dist/poi/utils/type.d.ts +4 -4
- package/dist/poi/utils/type.js +2 -1
- package/dist/poi/utils/type.js.map +1 -1
- package/dist/postEffects/addACESFilmicToneMappingPass.d.ts +4 -0
- package/dist/postEffects/addACESFilmicToneMappingPass.js +28 -0
- package/dist/postEffects/addACESFilmicToneMappingPass.js.map +1 -0
- package/dist/postEffects/addBrightnessContrastPass.d.ts +4 -0
- package/dist/postEffects/addBrightnessContrastPass.js +28 -0
- package/dist/postEffects/addBrightnessContrastPass.js.map +1 -0
- package/dist/postEffects/bloomPass.d.ts +2 -2
- package/dist/postEffects/bloomPass.js +14 -19
- package/dist/postEffects/bloomPass.js.map +1 -1
- package/dist/postEffects/colorifyPass.d.ts +6 -0
- package/dist/postEffects/colorifyPass.js +33 -0
- package/dist/postEffects/colorifyPass.js.map +1 -0
- package/dist/postEffects/index.d.ts +7 -1
- package/dist/postEffects/index.js +16 -5
- package/dist/postEffects/index.js.map +1 -1
- package/dist/postEffects/shader/colorify.d.ts +17 -0
- package/dist/postEffects/shader/colorify.js +19 -0
- package/dist/postEffects/shader/colorify.js.map +1 -0
- package/dist/postEffects/shader/gammaCorrectionShader.d.ts +15 -0
- package/dist/postEffects/shader/gammaCorrectionShader.js +18 -0
- package/dist/postEffects/shader/gammaCorrectionShader.js.map +1 -0
- package/dist/postEffects/shader/mapping.d.ts +19 -0
- package/dist/postEffects/shader/mapping.js +22 -0
- package/dist/postEffects/shader/mapping.js.map +1 -0
- package/dist/postEffects/shader/thermalMaging.d.ts +17 -0
- package/dist/postEffects/shader/thermalMaging.js +18 -0
- package/dist/postEffects/shader/thermalMaging.js.map +1 -0
- package/package.json +3 -3
package/dist/camera/index.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core';
|
|
1
|
+
import type { OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core';
|
|
2
2
|
declare type vector3Array = [number, number, number];
|
|
3
3
|
declare class Camera {
|
|
4
4
|
private camera;
|
|
5
5
|
private controls;
|
|
6
|
+
private sceneControl;
|
|
6
7
|
private isTransitionPeriod;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
private handleChanged;
|
|
8
|
+
private isTrigger;
|
|
9
|
+
private tween;
|
|
10
|
+
constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl);
|
|
12
11
|
/**
|
|
13
12
|
* caclCurrentPos
|
|
14
13
|
* @param currentPos
|
|
@@ -24,13 +23,17 @@ declare class Camera {
|
|
|
24
23
|
*/
|
|
25
24
|
private caclTargetByPitch;
|
|
26
25
|
/**
|
|
27
|
-
*
|
|
26
|
+
* caclSingleCoordinate
|
|
28
27
|
* @param prevTarget
|
|
29
28
|
* @param prevPosition
|
|
30
29
|
* @param lastTarget
|
|
31
30
|
* @returns
|
|
32
31
|
*/
|
|
33
32
|
private caclSingleCoordinate;
|
|
33
|
+
/**
|
|
34
|
+
* handle camera changed
|
|
35
|
+
*/
|
|
36
|
+
private handleChanged;
|
|
34
37
|
/**
|
|
35
38
|
* focus On Position
|
|
36
39
|
* @param params
|
|
@@ -39,6 +42,7 @@ declare class Camera {
|
|
|
39
42
|
target: vector3Array | vector3Array[];
|
|
40
43
|
pitch?: number;
|
|
41
44
|
duration?: number;
|
|
45
|
+
isTrigger?: boolean;
|
|
42
46
|
}): Promise<unknown>;
|
|
43
47
|
/**
|
|
44
48
|
* set camera
|
package/dist/camera/index.js
CHANGED
|
@@ -7,39 +7,27 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
|
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 { Box3, MathUtils, TWEEN, Vector3 } from '@anov/3d-core';
|
|
9
9
|
var Camera = /*#__PURE__*/function () {
|
|
10
|
-
function Camera(camera, controls) {
|
|
10
|
+
function Camera(camera, controls, sceneControl) {
|
|
11
11
|
_classCallCheck(this, Camera);
|
|
12
12
|
_defineProperty(this, "camera", void 0);
|
|
13
13
|
_defineProperty(this, "controls", void 0);
|
|
14
|
+
_defineProperty(this, "sceneControl", void 0);
|
|
14
15
|
_defineProperty(this, "isTransitionPeriod", false);
|
|
15
|
-
this
|
|
16
|
-
this
|
|
17
|
-
this.
|
|
18
|
-
|
|
16
|
+
_defineProperty(this, "isTrigger", true);
|
|
17
|
+
_defineProperty(this, "tween", void 0);
|
|
18
|
+
this.isTrigger = true;
|
|
19
|
+
this.camera = sceneControl.camera;
|
|
20
|
+
this.controls = sceneControl.controls;
|
|
21
|
+
this.sceneControl = sceneControl;
|
|
22
|
+
this.handleChanged();
|
|
19
23
|
}
|
|
20
24
|
|
|
21
25
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
* caclCurrentPos
|
|
27
|
+
* @param currentPos
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
24
30
|
_createClass(Camera, [{
|
|
25
|
-
key: "handleChanged",
|
|
26
|
-
value: function handleChanged() {
|
|
27
|
-
var _this = this;
|
|
28
|
-
this.controls.addEventListener('change', function () {
|
|
29
|
-
if (!_this.isTransitionPeriod) {
|
|
30
|
-
var lookat = _this.controls.target;
|
|
31
|
-
var position = _this.camera.position;
|
|
32
|
-
console.log('camera changed', lookat, position);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* caclCurrentPos
|
|
39
|
-
* @param currentPos
|
|
40
|
-
* @returns
|
|
41
|
-
*/
|
|
42
|
-
}, {
|
|
43
31
|
key: "caclCurrentPos",
|
|
44
32
|
value: function caclCurrentPos(currentPos, pitch) {
|
|
45
33
|
var box = new Box3();
|
|
@@ -81,7 +69,7 @@ var Camera = /*#__PURE__*/function () {
|
|
|
81
69
|
}
|
|
82
70
|
|
|
83
71
|
/**
|
|
84
|
-
*
|
|
72
|
+
* caclSingleCoordinate
|
|
85
73
|
* @param prevTarget
|
|
86
74
|
* @param prevPosition
|
|
87
75
|
* @param lastTarget
|
|
@@ -94,6 +82,18 @@ var Camera = /*#__PURE__*/function () {
|
|
|
94
82
|
return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition);
|
|
95
83
|
}
|
|
96
84
|
|
|
85
|
+
/**
|
|
86
|
+
* handle camera changed
|
|
87
|
+
*/
|
|
88
|
+
}, {
|
|
89
|
+
key: "handleChanged",
|
|
90
|
+
value: function handleChanged() {
|
|
91
|
+
var _this = this;
|
|
92
|
+
this.controls.addEventListener('change', function () {
|
|
93
|
+
if (_this.isTransitionPeriod) _this.sceneControl.renderer.render(_this.sceneControl.scene, _this.sceneControl.camera);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
97
|
/**
|
|
98
98
|
* focus On Position
|
|
99
99
|
* @param params
|
|
@@ -107,24 +107,22 @@ var Camera = /*#__PURE__*/function () {
|
|
|
107
107
|
pitch = params.pitch,
|
|
108
108
|
duration = params.duration;
|
|
109
109
|
var moveOptions = function moveOptions() {
|
|
110
|
-
var _ref;
|
|
110
|
+
var _ref, _params$isTrigger;
|
|
111
111
|
return {
|
|
112
112
|
duration: (_ref = duration && duration * 1000) !== null && _ref !== void 0 ? _ref : 1000,
|
|
113
|
+
isTrigger: (_params$isTrigger = params.isTrigger) !== null && _params$isTrigger !== void 0 ? _params$isTrigger : true,
|
|
113
114
|
onUpdate: function onUpdate(_ref2) {
|
|
115
|
+
var _params$isTrigger2;
|
|
114
116
|
var position = _ref2.position,
|
|
115
117
|
lookat = _ref2.lookat;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
// target: lookat.toArray(),
|
|
119
|
-
// })
|
|
120
|
-
,
|
|
121
|
-
|
|
118
|
+
_this2.isTrigger = (_params$isTrigger2 = params.isTrigger) !== null && _params$isTrigger2 !== void 0 ? _params$isTrigger2 : true;
|
|
119
|
+
},
|
|
122
120
|
onComplate: function onComplate() {
|
|
123
121
|
var _params$duration;
|
|
122
|
+
_this2.isTrigger = false;
|
|
124
123
|
res({
|
|
125
124
|
position: _this2.camera.position.toArray(),
|
|
126
125
|
target: _this2.controls.target.toArray(),
|
|
127
|
-
isTrigger: true,
|
|
128
126
|
duration: (_params$duration = params.duration) !== null && _params$duration !== void 0 ? _params$duration : 0,
|
|
129
127
|
userInput: true,
|
|
130
128
|
pitch: pitch !== null && pitch !== void 0 ? pitch : 40
|
|
@@ -156,21 +154,19 @@ var Camera = /*#__PURE__*/function () {
|
|
|
156
154
|
value: function set(params) {
|
|
157
155
|
var _this3 = this;
|
|
158
156
|
return new Promise(function (res, _) {
|
|
159
|
-
var _ref3;
|
|
157
|
+
var _params$isTrigger3, _ref3;
|
|
160
158
|
_this3.moveCameraTo(new Vector3(params.position[0], params.position[1], params.position[2]), new Vector3(params.target[0], params.target[1], params.target[2]), 0, {
|
|
159
|
+
isTrigger: (_params$isTrigger3 = params.isTrigger) !== null && _params$isTrigger3 !== void 0 ? _params$isTrigger3 : true,
|
|
161
160
|
duration: (_ref3 = params.duration && params.duration * 1000) !== null && _ref3 !== void 0 ? _ref3 : 1000,
|
|
162
161
|
onUpdate: function onUpdate(_ref4) {
|
|
162
|
+
var _params$isTrigger4;
|
|
163
163
|
var position = _ref4.position,
|
|
164
164
|
lookat = _ref4.lookat;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
// position: position.toArray(),
|
|
168
|
-
// target: lookat.toArray(),
|
|
169
|
-
// })
|
|
170
|
-
,
|
|
171
|
-
|
|
165
|
+
_this3.isTrigger = (_params$isTrigger4 = params.isTrigger) !== null && _params$isTrigger4 !== void 0 ? _params$isTrigger4 : true;
|
|
166
|
+
},
|
|
172
167
|
onComplate: function onComplate() {
|
|
173
168
|
var _params$duration2;
|
|
169
|
+
_this3.isTrigger = false;
|
|
174
170
|
res({
|
|
175
171
|
position: _this3.camera.position.toArray(),
|
|
176
172
|
target: _this3.controls.target.toArray(),
|
|
@@ -211,12 +207,17 @@ var Camera = /*#__PURE__*/function () {
|
|
|
211
207
|
var currentPoition = this.camera.position.clone();
|
|
212
208
|
var currentPositionInterpolation = new Vector3();
|
|
213
209
|
if ((options === null || options === void 0 ? void 0 : options.duration) === 0) {
|
|
210
|
+
this.isTrigger = !options.isTrigger;
|
|
214
211
|
this.camera.position.copy(position);
|
|
215
212
|
this.controls.target.copy(target);
|
|
216
|
-
(
|
|
213
|
+
requestAnimationFrame(function () {
|
|
214
|
+
(options === null || options === void 0 ? void 0 : options.onComplate) && options.onComplate();
|
|
215
|
+
_this4.sceneControl.renderer.render(_this4.sceneControl.scene, _this4.sceneControl.camera);
|
|
216
|
+
});
|
|
217
217
|
return;
|
|
218
218
|
}
|
|
219
|
-
|
|
219
|
+
if (this.tween) this.tween.stop();
|
|
220
|
+
this.tween = new TWEEN.Tween({
|
|
220
221
|
t: 0,
|
|
221
222
|
lookat: this.controls.target.clone(),
|
|
222
223
|
p: 0
|
|
@@ -243,7 +244,9 @@ var Camera = /*#__PURE__*/function () {
|
|
|
243
244
|
lookat: lookat
|
|
244
245
|
});
|
|
245
246
|
}).onComplete(function () {
|
|
246
|
-
(
|
|
247
|
+
requestAnimationFrame(function () {
|
|
248
|
+
(options === null || options === void 0 ? void 0 : options.onComplate) && options.onComplate();
|
|
249
|
+
});
|
|
247
250
|
_this4.controls.enabled = true;
|
|
248
251
|
setTimeout(function () {
|
|
249
252
|
_this4.isTransitionPeriod = false;
|
package/dist/camera/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Box3","MathUtils","TWEEN","Vector3","Camera","camera","controls","object","addEventListener","isTransitionPeriod","lookat","target","position","console","log","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","clone","sub","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","params","Promise","res","duration","moveOptions","onUpdate","onComplate","toArray","isTrigger","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../src/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, TWEEN, Vector3 } from '@anov/3d-core'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n}\n\nclass Camera {\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls) {\n this.camera = camera\n this.controls = controls\n\n this.controls.object = this.camera\n // this.handleChanged()\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n console.log('camera changed', lookat, position)\n }\n })\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingle Coordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n // sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n // position: position.toArray(),\n // target: lookat.toArray(),\n // })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise ((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n // params.isTrigger\n // && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n // position: position.toArray(),\n // target: lookat.toArray(),\n // })\n },\n onComplate: () => {\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n options?.onComplate && options.onComplate()\n return\n }\n\n new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n options?.onComplate && options.onComplate()\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Box3","MathUtils","TWEEN","Vector3","Camera","camera","controls","sceneControl","isTrigger","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","addEventListener","isTransitionPeriod","renderer","render","scene","params","Promise","res","duration","moveOptions","onUpdate","lookat","onComplate","toArray","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","tween","stop","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../src/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { Box3, MathUtils, TWEEN, Vector3 } from '@anov/3d-core'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera {\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private sceneControl: SceneControl\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(camera: PerspectiveCamera, controls: OrbitControls, sceneControl: SceneControl) {\n this.isTrigger = true\n this.camera = sceneControl.camera!\n this.controls = sceneControl.controls!\n this.sceneControl = sceneControl\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (this.isTransitionPeriod)\n this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.sceneControl.renderer!.render(this.sceneControl.scene!, this.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,13 +11,17 @@ import createVolumetricCloud from './environment/volumetricCloud/inex';
|
|
|
11
11
|
import createSkyCloud from './environment/shaderCloud/index';
|
|
12
12
|
import Snow from './environment/showShader';
|
|
13
13
|
import Rain from './environment/rainShader';
|
|
14
|
-
import { Css2DPoi, EAnimationType, SpritePoi } from './poi';
|
|
14
|
+
import { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi';
|
|
15
15
|
import HeatMap from './heatmap/index';
|
|
16
16
|
import SkyBox from './environment/skyBox';
|
|
17
17
|
import Camera from './camera/index';
|
|
18
18
|
import { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve';
|
|
19
19
|
import Fog2DMesh from './weather/fog2DMesh';
|
|
20
|
+
import addColorifyPass from './postEffects/colorifyPass';
|
|
21
|
+
import addBloomSelected from './postEffects/bloomPass';
|
|
22
|
+
import addBrightnessContrastPass from './postEffects/addBrightnessContrastPass';
|
|
23
|
+
import addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass';
|
|
20
24
|
export * from './scene';
|
|
21
25
|
export { SceneControl, // todo remove
|
|
22
|
-
createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects, // effect
|
|
23
|
-
createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, };
|
|
26
|
+
createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects, // effect
|
|
27
|
+
createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloomSelected, addBrightnessContrastPass, addMappingExposurePass, };
|
package/dist/index.js
CHANGED
|
@@ -11,16 +11,20 @@ import createVolumetricCloud from "./environment/volumetricCloud/inex";
|
|
|
11
11
|
import createSkyCloud from "./environment/shaderCloud/index";
|
|
12
12
|
import Snow from "./environment/showShader";
|
|
13
13
|
import Rain from "./environment/rainShader";
|
|
14
|
-
import { Css2DPoi, EAnimationType, SpritePoi } from "./poi";
|
|
14
|
+
import { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from "./poi";
|
|
15
15
|
import HeatMap from "./heatmap/index";
|
|
16
16
|
import SkyBox from "./environment/skyBox";
|
|
17
17
|
import Camera from "./camera/index";
|
|
18
18
|
import { RoundLineGeometry, createRoundLineWallMesh } from "./line/round-curve";
|
|
19
19
|
import Fog2DMesh from "./weather/fog2DMesh";
|
|
20
|
+
import addColorifyPass from "./postEffects/colorifyPass";
|
|
21
|
+
import addBloomSelected from "./postEffects/bloomPass";
|
|
22
|
+
import addBrightnessContrastPass from "./postEffects/addBrightnessContrastPass";
|
|
23
|
+
import addMappingExposurePass from "./postEffects/addACESFilmicToneMappingPass";
|
|
20
24
|
export * from "./scene";
|
|
21
25
|
export { SceneControl,
|
|
22
26
|
// todo remove
|
|
23
|
-
createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects,
|
|
27
|
+
createRain, createSnow, createSun, createSkySystem, createVolumetricCloud, createSkyCloud, Snow, Rain, Css2DPoi, Css3DPoi, SpritePoi, EAnimationType, HeatMap, initPostEffects,
|
|
24
28
|
// effect
|
|
25
|
-
createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh };
|
|
29
|
+
createHighSelectedTool, GridMaterial, SkyBox, ViewHelper, Camera, RoundLineGeometry, createRoundLineWallMesh, Fog2DMesh, addColorifyPass, addBloomSelected, addBrightnessContrastPass, addMappingExposurePass };
|
|
26
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/fog2DMesh'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n Css2DPoi,\n SpritePoi,\n EAnimationType,\n HeatMap,\n initPostEffects, // effect\n createHighSelectedTool,\n GridMaterial,\n SkyBox,\n ViewHelper,\n Camera,\n RoundLineGeometry,\n createRoundLineWallMesh,\n Fog2DMesh,\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;
|
|
1
|
+
{"version":3,"names":["SceneControl","createSnow","createRain","initPostEffects","createHighSelectedTool","createSun","GridMaterial","ViewHelper","createSkySystem","createVolumetricCloud","createSkyCloud","Snow","Rain","Css2DPoi","Css3DPoi","EAnimationType","SpritePoi","HeatMap","SkyBox","Camera","RoundLineGeometry","createRoundLineWallMesh","Fog2DMesh","addColorifyPass","addBloomSelected","addBrightnessContrastPass","addMappingExposurePass"],"sources":["../src/index.ts"],"sourcesContent":["import { SceneControl } from '@anov/3d-core'\nimport { createSnow } from './environment/snow'\nimport { createRain } from './environment/rain'\nimport { initPostEffects } from './postEffects'\nimport createHighSelectedTool from './postEffects/outlinePass'\nimport { createSun } from './environment/sun'\nimport GridMaterial from './material/pristineGridMaterial'\nimport ViewHelper from './helper/view'\nimport createSkySystem from './environment/sky'\nimport createVolumetricCloud from './environment/volumetricCloud/inex'\nimport createSkyCloud from './environment/shaderCloud/index'\nimport Snow from './environment/showShader'\nimport Rain from './environment/rainShader'\nimport { Css2DPoi, Css3DPoi, EAnimationType, SpritePoi } from './poi'\nimport HeatMap from './heatmap/index'\nimport SkyBox from './environment/skyBox'\nimport Camera from './camera/index'\nimport { RoundLineGeometry, createRoundLineWallMesh } from './line/round-curve'\nimport Fog2DMesh from './weather/fog2DMesh'\nimport addColorifyPass from './postEffects/colorifyPass'\nimport addBloomSelected from './postEffects/bloomPass'\nimport addBrightnessContrastPass from './postEffects/addBrightnessContrastPass'\nimport addMappingExposurePass from './postEffects/addACESFilmicToneMappingPass'\n\nexport * from './scene'\n\nexport {\n SceneControl, // todo remove\n createRain,\n createSnow,\n createSun,\n createSkySystem,\n createVolumetricCloud,\n createSkyCloud,\n Snow,\n Rain,\n Css2DPoi,\n Css3DPoi,\n SpritePoi,\n EAnimationType,\n HeatMap,\n initPostEffects, // effect\n createHighSelectedTool,\n GridMaterial,\n SkyBox,\n ViewHelper,\n Camera,\n RoundLineGeometry,\n createRoundLineWallMesh,\n Fog2DMesh,\n addColorifyPass,\n addBloomSelected,\n addBrightnessContrastPass,\n addMappingExposurePass,\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,OAAOC,sBAAsB;AAC7B,SAASC,SAAS;AAClB,OAAOC,YAAY;AACnB,OAAOC,UAAU;AACjB,OAAOC,eAAe;AACtB,OAAOC,qBAAqB;AAC5B,OAAOC,cAAc;AACrB,OAAOC,IAAI;AACX,OAAOC,IAAI;AACX,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,SAAS;AACtD,OAAOC,OAAO;AACd,OAAOC,MAAM;AACb,OAAOC,MAAM;AACb,SAASC,iBAAiB,EAAEC,uBAAuB;AACnD,OAAOC,SAAS;AAChB,OAAOC,eAAe;AACtB,OAAOC,gBAAgB;AACvB,OAAOC,yBAAyB;AAChC,OAAOC,sBAAsB;AAE7B;AAEA,SACE1B,YAAY;AAAE;AACdE,UAAU,EACVD,UAAU,EACVI,SAAS,EACTG,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACRE,SAAS,EACTD,cAAc,EACdE,OAAO,EACPd,eAAe;AAAE;AACjBC,sBAAsB,EACtBE,YAAY,EACZY,MAAM,EACNX,UAAU,EACVY,MAAM,EACNC,iBAAiB,EACjBC,uBAAuB,EACvBC,SAAS,EACTC,eAAe,EACfC,gBAAgB,EAChBC,yBAAyB,EACzBC,sBAAsB"}
|
package/dist/poi/2D/index.d.ts
CHANGED
package/dist/poi/2D/index.js
CHANGED
|
@@ -4,6 +4,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
4
4
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5
5
|
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); } }
|
|
6
6
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
7
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
|
8
|
+
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
|
7
9
|
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
10
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
9
11
|
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); }; }
|
|
@@ -173,6 +175,14 @@ var Css2DPoi = /*#__PURE__*/function (_Poi) {
|
|
|
173
175
|
hasExecuted = true;
|
|
174
176
|
};
|
|
175
177
|
}
|
|
178
|
+
}, {
|
|
179
|
+
key: "copy",
|
|
180
|
+
value: function copy(source, recursive) {
|
|
181
|
+
_get(_getPrototypeOf(Css2DPoi.prototype), "copy", this).call(this, source, recursive);
|
|
182
|
+
this.element = source.element.cloneNode(true);
|
|
183
|
+
this.center = source.center;
|
|
184
|
+
return this;
|
|
185
|
+
}
|
|
176
186
|
}]);
|
|
177
187
|
return Css2DPoi;
|
|
178
188
|
}(Poi);
|
package/dist/poi/2D/index.js.map
CHANGED
|
@@ -1 +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":"
|
|
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","source","recursive","cloneNode"],"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 copy(source: any, recursive: boolean) {\n super.copy(source, recursive)\n\n this.element = source.element.cloneNode(true)\n\n this.center = source.center\n\n return this\n }\n}\n\nexport default Css2DPoi"],"mappings":"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"}
|
package/dist/poi/3D/index.d.ts
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* 是否锁定镜头,标牌一直面向镜头
|
|
13
|
-
*/
|
|
14
|
-
private updateAxis;
|
|
15
|
-
private updateScale;
|
|
16
|
-
delete(option: IPOIOption): void;
|
|
17
|
-
update(option: IPOIOption): void;
|
|
1
|
+
import type { Vector2 } from '@anov/3d-core';
|
|
2
|
+
import type { IOption } from '../utils/type';
|
|
3
|
+
import Poi from '../Poi';
|
|
4
|
+
declare class Css3DPoi extends Poi {
|
|
5
|
+
element: HTMLElement;
|
|
6
|
+
isCSS3DObject: boolean;
|
|
7
|
+
center: Vector2;
|
|
8
|
+
constructor(data: any, option?: IOption);
|
|
9
|
+
getElement(): HTMLElement;
|
|
10
|
+
play(): void;
|
|
11
|
+
copy(source: any, recursive: boolean): this;
|
|
18
12
|
}
|
|
19
|
-
export default
|
|
13
|
+
export default Css3DPoi;
|