@soonspacejs/plugin-model-blast 2.13.6 → 2.13.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/index.esm.js +138 -1
- package/dist/index.esm.js.map +1 -0
- package/package.json +3 -3
- package/dist/index.d.ts +0 -21
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# @soonspacejs/plugin-model-blast
|
|
2
|
-
|
|
3
|
-
> Model blast plugin for SoonSpace.js
|
|
4
|
-
|
|
5
|
-
Document: [http://www.xwbuilders.com:8800/plugin/model-blast.html](http://www.xwbuilders.com:8800/plugin/model-blast.html)
|
|
1
|
+
# @soonspacejs/plugin-model-blast
|
|
2
|
+
|
|
3
|
+
> Model blast plugin for SoonSpace.js
|
|
4
|
+
|
|
5
|
+
Document: [http://www.xwbuilders.com:8800/plugin/model-blast.html](http://www.xwbuilders.com:8800/plugin/model-blast.html)
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1,138 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Vector3, Quaternion, Box3 } from 'three';
|
|
2
|
+
|
|
3
|
+
class ModelBlastPlugin {
|
|
4
|
+
constructor(ssp) {
|
|
5
|
+
this.ssp = ssp;
|
|
6
|
+
this.prevObjects = new Set();
|
|
7
|
+
this.childDirs = new Map;
|
|
8
|
+
this.childPositions = new Map;
|
|
9
|
+
this.objectActionMap = new Map;
|
|
10
|
+
}
|
|
11
|
+
start(object, scalar) {
|
|
12
|
+
this.prevObjects.add(object);
|
|
13
|
+
const { ssp, } = this;
|
|
14
|
+
const box = ssp.utils.getBoundingBox(object);
|
|
15
|
+
const boxSize = box.getSize(new Vector3());
|
|
16
|
+
// 计算模型的中心点坐标,这个为爆炸中心
|
|
17
|
+
const boxCenter = box.getCenter(new Vector3());
|
|
18
|
+
const scalarLength = scalar !== null && scalar !== void 0 ? scalar : Math.max(boxSize.x, boxSize.y, boxSize.z);
|
|
19
|
+
object.traverse((child) => {
|
|
20
|
+
if (child.type === 'Mesh') {
|
|
21
|
+
if (!this.childDirs.has(child.uuid) || !this.childPositions.has(child.uuid)) {
|
|
22
|
+
const meshBox = ssp.utils.getBoundingBox(child);
|
|
23
|
+
// 获取每个mesh的中心点,爆炸方向为爆炸中心点指向mesh中心点
|
|
24
|
+
const meshBoxCenter = meshBox.getCenter(new Vector3());
|
|
25
|
+
const worldDir = new Vector3()
|
|
26
|
+
.subVectors(meshBoxCenter, boxCenter)
|
|
27
|
+
.normalize();
|
|
28
|
+
if (child.parent) {
|
|
29
|
+
const quaternion = child.parent.getWorldQuaternion(new Quaternion());
|
|
30
|
+
quaternion.invert();
|
|
31
|
+
// worldDir to localDir
|
|
32
|
+
worldDir.applyQuaternion(quaternion);
|
|
33
|
+
}
|
|
34
|
+
this.childDirs.set(child.uuid, worldDir);
|
|
35
|
+
this.childPositions.set(child.uuid, child.position.clone());
|
|
36
|
+
}
|
|
37
|
+
child.position.copy(new Vector3()
|
|
38
|
+
.copy(this.childPositions.get(child.uuid))
|
|
39
|
+
.add(new Vector3()
|
|
40
|
+
.copy(this.childDirs.get(child.uuid))
|
|
41
|
+
.multiplyScalar(scalarLength)));
|
|
42
|
+
this.ssp.render();
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
stop(object) {
|
|
47
|
+
let stopObject = object;
|
|
48
|
+
if (!stopObject) {
|
|
49
|
+
const lastObject = [...this.prevObjects].at(-1);
|
|
50
|
+
if (lastObject) {
|
|
51
|
+
this.prevObjects.delete(lastObject);
|
|
52
|
+
stopObject = lastObject;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
stopObject === null || stopObject === void 0 ? void 0 : stopObject.traverse((child) => {
|
|
56
|
+
if ((child.type === 'Mesh') &&
|
|
57
|
+
this.childDirs.has(child.uuid) &&
|
|
58
|
+
this.childPositions.has(child.uuid)) {
|
|
59
|
+
child.position.copy(this.childPositions.get(child.uuid));
|
|
60
|
+
this.childDirs.delete(child.uuid);
|
|
61
|
+
this.childPositions.delete(child.uuid);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
this.ssp.render();
|
|
65
|
+
}
|
|
66
|
+
startForObjects(objects, scalar) {
|
|
67
|
+
var _a;
|
|
68
|
+
const { ssp, objectActionMap: objectsActionsMap, } = this;
|
|
69
|
+
if (!objectsActionsMap.has(objects)) {
|
|
70
|
+
const action = blastObjects(objects, ssp);
|
|
71
|
+
objectsActionsMap.set(objects, action);
|
|
72
|
+
}
|
|
73
|
+
(_a = objectsActionsMap.get(objects)) === null || _a === void 0 ? void 0 : _a.setTime(scalar);
|
|
74
|
+
}
|
|
75
|
+
stopForObjects(objects) {
|
|
76
|
+
var _a;
|
|
77
|
+
const { objectActionMap, } = this;
|
|
78
|
+
if (!objects) {
|
|
79
|
+
objects = [...objectActionMap.keys()].at(-1);
|
|
80
|
+
}
|
|
81
|
+
if (!objects)
|
|
82
|
+
return;
|
|
83
|
+
(_a = objectActionMap.get(objects)) === null || _a === void 0 ? void 0 : _a.stop();
|
|
84
|
+
objectActionMap.delete(objects);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function blastObjects(objects, ssp) {
|
|
88
|
+
const getBoundingBox = ssp.utils.getBoundingBox;
|
|
89
|
+
const blastDirs = {};
|
|
90
|
+
const objectPositions = {};
|
|
91
|
+
let objectBoxMap = {};
|
|
92
|
+
const allBox = new Box3();
|
|
93
|
+
for (const obj of objects) {
|
|
94
|
+
const box = getBoundingBox(obj);
|
|
95
|
+
objectBoxMap[obj.uuid] = box;
|
|
96
|
+
allBox.union(box);
|
|
97
|
+
}
|
|
98
|
+
const center = allBox.getCenter(new Vector3());
|
|
99
|
+
const boxSize = allBox.getSize(new Vector3());
|
|
100
|
+
const defaultTime = Math.max(boxSize.x, boxSize.y, boxSize.z);
|
|
101
|
+
const objCenter = new Vector3();
|
|
102
|
+
for (const obj of objects) {
|
|
103
|
+
const { uuid, position, parent, } = obj;
|
|
104
|
+
objectPositions[uuid] = position.clone();
|
|
105
|
+
objectBoxMap[uuid].getCenter(objCenter);
|
|
106
|
+
const dir = new Vector3();
|
|
107
|
+
dir.subVectors(objCenter, center);
|
|
108
|
+
if (parent) {
|
|
109
|
+
const quaternion = parent.getWorldQuaternion(new Quaternion());
|
|
110
|
+
quaternion.invert();
|
|
111
|
+
dir.applyQuaternion(quaternion);
|
|
112
|
+
}
|
|
113
|
+
dir.normalize();
|
|
114
|
+
blastDirs[uuid] = dir;
|
|
115
|
+
}
|
|
116
|
+
objectBoxMap = null;
|
|
117
|
+
function setTime(time = defaultTime) {
|
|
118
|
+
for (const obj of objects) {
|
|
119
|
+
const { uuid, position, } = obj;
|
|
120
|
+
const dir = blastDirs[uuid];
|
|
121
|
+
const origin = objectPositions[uuid];
|
|
122
|
+
position.copy(dir).multiplyScalar(time).add(origin);
|
|
123
|
+
}
|
|
124
|
+
ssp.render();
|
|
125
|
+
}
|
|
126
|
+
function stop() {
|
|
127
|
+
for (const obj of objects) {
|
|
128
|
+
const { uuid, position, } = obj;
|
|
129
|
+
const origin = objectPositions[uuid];
|
|
130
|
+
position.copy(origin);
|
|
131
|
+
}
|
|
132
|
+
ssp.render();
|
|
133
|
+
}
|
|
134
|
+
return { setTime, stop, };
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export { blastObjects, ModelBlastPlugin as default };
|
|
138
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nimport SoonSpace from 'soonspacejs'\r\nimport { Object3D, Quaternion, Vector3, Box3, } from 'three'\r\n\r\nexport default class ModelBlastPlugin {\r\n\r\n prevObjects: Set<Object3D> = new Set()\r\n\r\n childDirs = new Map<string, Vector3>\r\n childPositions = new Map<string, Vector3>\r\n\r\n constructor ( readonly ssp: SoonSpace ) {\r\n \r\n }\r\n\r\n start ( object: Object3D, scalar?: number ) {\r\n\r\n this.prevObjects.add( object )\r\n\r\n const { ssp, } = this\r\n\r\n const box = ssp.utils.getBoundingBox( object )\r\n const boxSize = box.getSize( new Vector3() )\r\n // 计算模型的中心点坐标,这个为爆炸中心\r\n const boxCenter = box.getCenter( new Vector3() )\r\n\r\n const scalarLength = scalar ?? Math.max( boxSize.x, boxSize.y, boxSize.z )\r\n\r\n object.traverse( ( child ) => {\r\n\r\n if ( child.type === 'Mesh' ) {\r\n\r\n if ( !this.childDirs.has( child.uuid ) || !this.childPositions.has( child.uuid ) ) {\r\n\r\n const meshBox = ssp.utils.getBoundingBox( child )\r\n\r\n // 获取每个mesh的中心点,爆炸方向为爆炸中心点指向mesh中心点\r\n const meshBoxCenter = meshBox.getCenter( new Vector3() )\r\n\r\n const worldDir = new Vector3()\r\n .subVectors( meshBoxCenter, boxCenter )\r\n .normalize()\r\n \r\n if ( child.parent ) {\r\n\r\n const quaternion = child.parent.getWorldQuaternion( new Quaternion() )\r\n\r\n quaternion.invert()\r\n\r\n // worldDir to localDir\r\n worldDir.applyQuaternion( quaternion )\r\n\r\n }\r\n\r\n this.childDirs.set( \r\n child.uuid,\r\n worldDir\r\n )\r\n this.childPositions.set(\r\n child.uuid,\r\n child.position.clone()\r\n )\r\n \r\n }\r\n\r\n child.position.copy(\r\n new Vector3()\r\n .copy( this.childPositions.get( child.uuid )! )\r\n .add(\r\n new Vector3()\r\n .copy( this.childDirs.get( child.uuid )! )\r\n .multiplyScalar( scalarLength )\r\n )\r\n )\r\n\r\n this.ssp.render()\r\n \r\n }\r\n \r\n } )\r\n \r\n }\r\n\r\n stop ( object?: Object3D ) {\r\n\r\n let stopObject = object \r\n\r\n if ( !stopObject ) {\r\n\r\n const lastObject = [ ...this.prevObjects ].at( -1 )\r\n\r\n if ( lastObject ) {\r\n\r\n this.prevObjects.delete( lastObject )\r\n\r\n stopObject = lastObject\r\n \r\n }\r\n \r\n }\r\n\r\n stopObject?.traverse( ( child ) => {\r\n\r\n if (\r\n ( child.type === 'Mesh' ) &&\r\n this.childDirs.has( child.uuid ) && \r\n this.childPositions.has( child.uuid )\r\n ) {\r\n\r\n child.position.copy( this.childPositions.get( child.uuid )! )\r\n\r\n this.childDirs.delete( child.uuid )\r\n this.childPositions.delete( child.uuid )\r\n \r\n }\r\n \r\n } )\r\n\r\n this.ssp.render()\r\n \r\n }\r\n\r\n objectActionMap = new Map<Object3D[], {setTime: ( time?: number ) => void; stop: () => void}>\r\n\r\n startForObjects ( objects: Object3D[], scalar?: number ) {\r\n\r\n const { ssp, objectActionMap: objectsActionsMap, } = this\r\n\r\n if ( !objectsActionsMap.has( objects ) ) {\r\n\r\n const action = blastObjects( objects, ssp )\r\n\r\n objectsActionsMap.set( objects, action )\r\n \r\n }\r\n\r\n objectsActionsMap.get( objects )?.setTime( scalar )\r\n \r\n }\r\n\r\n stopForObjects ( objects?: Object3D[] ) {\r\n\r\n const { objectActionMap, } = this\r\n\r\n if ( !objects ) {\r\n\r\n objects = [ ...objectActionMap.keys() ].at( -1 )\r\n \r\n }\r\n\r\n if ( !objects ) return\r\n\r\n objectActionMap.get( objects )?.stop()\r\n objectActionMap.delete( objects )\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nexport function blastObjects ( objects: Object3D[], ssp: SoonSpace ) {\r\n\r\n const getBoundingBox = ssp.utils.getBoundingBox\r\n\r\n const blastDirs: Record<string, Vector3> = {}\r\n const objectPositions: Record<string, Vector3> = {}\r\n let objectBoxMap: Record<string, Box3> | null = {}\r\n\r\n const allBox = new Box3()\r\n \r\n for ( const obj of objects ) {\r\n\r\n const box = getBoundingBox( obj )\r\n\r\n objectBoxMap[ obj.uuid ] = box\r\n allBox.union( box )\r\n \r\n }\r\n\r\n const center = allBox.getCenter( new Vector3() )\r\n const boxSize = allBox.getSize( new Vector3() )\r\n const defaultTime = Math.max( boxSize.x, boxSize.y, boxSize.z )\r\n\r\n\r\n const objCenter = new Vector3()\r\n\r\n for ( const obj of objects ) {\r\n\r\n const { uuid, position, parent, } = obj\r\n\r\n objectPositions[ uuid ] = position.clone()\r\n\r\n objectBoxMap[ uuid ].getCenter( objCenter )\r\n \r\n const dir = new Vector3()\r\n\r\n dir.subVectors( objCenter, center )\r\n \r\n if ( parent ) {\r\n\r\n const quaternion = parent.getWorldQuaternion( new Quaternion() )\r\n\r\n quaternion.invert()\r\n \r\n dir.applyQuaternion( quaternion )\r\n\r\n }\r\n\r\n dir.normalize()\r\n\r\n blastDirs[ uuid ] = dir\r\n\r\n \r\n }\r\n\r\n objectBoxMap = null\r\n\r\n\r\n function setTime ( time: number = defaultTime ) {\r\n\r\n for ( const obj of objects ) {\r\n\r\n const { uuid, position, } = obj\r\n const dir = blastDirs[ uuid ]\r\n const origin = objectPositions[ uuid ]\r\n\r\n position.copy( dir ).multiplyScalar( time ).add( origin )\r\n \r\n }\r\n ssp.render()\r\n \r\n }\r\n\r\n function stop () {\r\n\r\n for ( const obj of objects ) {\r\n\r\n const { uuid, position, } = obj\r\n const origin = objectPositions[ uuid ]\r\n\r\n position.copy( origin )\r\n \r\n }\r\n ssp.render()\r\n \r\n \r\n }\r\n\r\n return { setTime, stop, }\r\n\r\n}"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soonspacejs/plugin-model-blast",
|
|
3
3
|
"pluginName": "ModelBlastPlugin",
|
|
4
|
-
"version": "2.13.
|
|
4
|
+
"version": "2.13.7",
|
|
5
5
|
"description": "Model blast plugin for SoonSpace.js",
|
|
6
6
|
"main": "dist/index.esm.js",
|
|
7
7
|
"module": "dist/index.esm.js",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
],
|
|
14
14
|
"author": "xunwei",
|
|
15
15
|
"license": "UNLICENSED",
|
|
16
|
-
"gitHead": "
|
|
16
|
+
"gitHead": "550040550bf20ec0015982ff1159d0cfe9b35ed3",
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
"soonspacejs": "2.13.
|
|
18
|
+
"soonspacejs": "2.13.7"
|
|
19
19
|
}
|
|
20
20
|
}
|
package/dist/index.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import SoonSpace from 'soonspacejs';
|
|
2
|
-
import { Object3D, Vector3 } from 'three';
|
|
3
|
-
export default class ModelBlastPlugin {
|
|
4
|
-
readonly ssp: SoonSpace;
|
|
5
|
-
prevObjects: Set<Object3D>;
|
|
6
|
-
childDirs: Map<string, Vector3>;
|
|
7
|
-
childPositions: Map<string, Vector3>;
|
|
8
|
-
constructor(ssp: SoonSpace);
|
|
9
|
-
start(object: Object3D, scalar?: number): void;
|
|
10
|
-
stop(object?: Object3D): void;
|
|
11
|
-
objectActionMap: Map<Object3D<import("three").Object3DEventMap>[], {
|
|
12
|
-
setTime: (time?: number) => void;
|
|
13
|
-
stop: () => void;
|
|
14
|
-
}>;
|
|
15
|
-
startForObjects(objects: Object3D[], scalar?: number): void;
|
|
16
|
-
stopForObjects(objects?: Object3D[]): void;
|
|
17
|
-
}
|
|
18
|
-
export declare function blastObjects(objects: Object3D[], ssp: SoonSpace): {
|
|
19
|
-
setTime: (time?: number) => void;
|
|
20
|
-
stop: () => void;
|
|
21
|
-
};
|