@soonspacejs/plugin-pathfinding 2.13.12 → 2.13.14

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/index.esm.js CHANGED
@@ -1 +1,165 @@
1
- import{Matrix4 as e,Mesh as s,InstancedMesh as r,MeshStandardMaterial as t}from"three";import{Crowd as o}from"@recast-navigation/core";import{generateSoloNavMesh as i}from"@recast-navigation/generators";import{DebugDrawer as a,CrowdHelper as d}from"@recast-navigation/three";import h from"soonspacejs";import{StaticGeometryGenerator as n}from"three-mesh-bvh";function c(r){const t=r.name,o=r.geometry,i=r.material,a=r.count,d=[];for(let h=0;h<a;h++){const a=new e;r.getMatrixAt(h,a);const n=new s(o,i);n.name=`${t}_${h}`,d.push(n),a.premultiply(r.matrixWorld),n.matrix.copy(a),n.matrixWorld.copy(a),a.decompose(n.position,n.quaternion,n.scale)}return d}function p(e){var s;const t=[];e.forEach(e=>{e.traverse(e=>{"Mesh"===e.type&&(e instanceof r?t.push(...c(e)):t.push(e))})});const o=new n(t);o.applyWorldTransforms=!0,o.attributes=["position","index"];const i=o.generate();return{positions:i.attributes.position.array,indices:null===(s=i.index)||void 0===s?void 0:s.array}}const{warn:l}=h.utils;class w{constructor(e){this.ssp=e,this.navMesh=null,this.crowd=null,this.debugDrawer=null,this.crowdHelper=null,this._crowdUpdate=()=>{var e;this.crowd&&(this.crowd.update(this.ssp.viewport.state.delta),null===(e=this.crowdHelper)||void 0===e||e.update(),this.crowd.getActiveAgentCount()>0&&this.ssp.render())}}createSoloNavMesh(e,s={}){if(this.navMesh)return l("navmesh 已经存在,请先调用 disposeNavMesh()"),this.navMesh;const{positions:r,indices:t}=p(e),o=i(r,t,s);return o.success?(this.navMesh=o.navMesh,this.navMesh):null}disposeSoloNavMesh(){var e;null===(e=this.navMesh)||void 0===e||e.destroy(),this.navMesh=null}createCrowd(e){return this.crowd?(l("crowd 已经存在,请先调用 disposeCrowd()"),this.crowd):this.navMesh?(this.crowd=new o(this.navMesh,e),this.ssp.signals.beforeRender.add(this._crowdUpdate),this.crowd):(l("navmesh 不存在,请先调用 createSoloNavMesh()"),null)}disposeCrowd(){var e;null===(e=this.crowd)||void 0===e||e.destroy(),this.crowd=null,this.ssp.signals.beforeRender.remove(this._crowdUpdate)}createDebugDrawer(){return this.debugDrawer?(l("debug drawer 已经存在,请先调用 disposeDebugDrawer()"),this.debugDrawer):this.navMesh?(this.debugDrawer=new a,this.debugDrawer.drawNavMesh(this.navMesh,0),this.ssp.addObject(this.debugDrawer),this.debugDrawer):(l("navmesh 不存在,请先调用 createSoloNavMesh()"),null)}disposeDebugDrawer(){this.debugDrawer&&(this.debugDrawer.dispose(),this.ssp.removeObject(this.debugDrawer),this.debugDrawer=null)}createCrowdHelper(e={agentMaterial:new t({color:65280})}){return this.crowdHelper?(l("crowd helper 已经存在,请先调用 disposeCrowdHelper()"),this.crowdHelper):this.crowd?(this.crowdHelper=new d(this.crowd,e),this.ssp.addObject(this.crowdHelper),this.crowdHelper):(l("crowd 不存在,请先调用 createCrowd()"),null)}disposeCrowdHelper(){this.crowdHelper&&(this.crowdHelper.agentMeshes.forEach(e=>{e.geometry.dispose(),e.material.dispose()}),this.ssp.removeObject(this.crowdHelper))}dispose(){this.disposeSoloNavMesh(),this.disposeCrowd(),this.disposeDebugDrawer(),this.disposeCrowdHelper()}}export{c as deInstancingMesh,w as default,p as getVertices};
1
+ import { Matrix4, Mesh, InstancedMesh, MeshStandardMaterial } from 'three';
2
+ import { Crowd } from '@recast-navigation/core';
3
+ import { generateSoloNavMesh } from '@recast-navigation/generators';
4
+ import { DebugDrawer, CrowdHelper } from '@recast-navigation/three';
5
+ import SoonSpace from 'soonspacejs';
6
+ import { StaticGeometryGenerator } from 'three-mesh-bvh';
7
+
8
+ function deInstancingMesh(insMesh) {
9
+ const name = insMesh.name;
10
+ const geometry = insMesh.geometry;
11
+ const material = insMesh.material;
12
+ const count = insMesh.count;
13
+ const meshes = [];
14
+ for (let i = 0; i < count; i++) {
15
+ const matrix = new Matrix4();
16
+ insMesh.getMatrixAt(i, matrix);
17
+ const mesh = new Mesh(geometry, material);
18
+ mesh.name = `${name}_${i}`;
19
+ meshes.push(mesh);
20
+ matrix.premultiply(insMesh.matrixWorld);
21
+ mesh.matrix.copy(matrix);
22
+ mesh.matrixWorld.copy(matrix);
23
+ matrix.decompose(mesh.position, mesh.quaternion, mesh.scale);
24
+ }
25
+ return meshes;
26
+ }
27
+ function getVertices(objects) {
28
+ var _a;
29
+ /**
30
+ * traverse all meshes
31
+ */
32
+ const meshes = [];
33
+ objects.forEach((object) => {
34
+ object.traverse(child => {
35
+ if (child.type === 'Mesh') {
36
+ if (child instanceof InstancedMesh) {
37
+ // instanced
38
+ meshes.push(...deInstancingMesh(child));
39
+ }
40
+ else {
41
+ // normal
42
+ meshes.push(child);
43
+ }
44
+ }
45
+ });
46
+ });
47
+ const staticGenerator = new StaticGeometryGenerator(meshes);
48
+ staticGenerator.applyWorldTransforms = true;
49
+ staticGenerator.attributes = ['position', 'index'];
50
+ const mergedGeometry = staticGenerator.generate();
51
+ const positions = mergedGeometry.attributes.position.array;
52
+ const indices = (_a = mergedGeometry.index) === null || _a === void 0 ? void 0 : _a.array;
53
+ return { positions, indices, };
54
+ }
55
+
56
+ const { warn, } = SoonSpace.utils;
57
+ class PathfindingPlugin {
58
+ constructor(ssp) {
59
+ this.ssp = ssp;
60
+ this.navMesh = null;
61
+ this.crowd = null;
62
+ this.debugDrawer = null;
63
+ this.crowdHelper = null;
64
+ // crowd
65
+ this._crowdUpdate = () => {
66
+ var _a;
67
+ if (this.crowd) {
68
+ this.crowd.update(this.ssp.viewport.state.delta);
69
+ (_a = this.crowdHelper) === null || _a === void 0 ? void 0 : _a.update();
70
+ if (this.crowd.getActiveAgentCount() > 0)
71
+ this.ssp.render();
72
+ }
73
+ };
74
+ }
75
+ // solo navmesh
76
+ createSoloNavMesh(objects, config = {}) {
77
+ if (this.navMesh) {
78
+ warn('navmesh 已经存在,请先调用 disposeNavMesh()');
79
+ return this.navMesh;
80
+ }
81
+ const { positions, indices, } = getVertices(objects);
82
+ const result = generateSoloNavMesh(positions, indices, config);
83
+ if (result.success) {
84
+ this.navMesh = result.navMesh;
85
+ return this.navMesh;
86
+ }
87
+ return null;
88
+ }
89
+ disposeSoloNavMesh() {
90
+ var _a;
91
+ (_a = this.navMesh) === null || _a === void 0 ? void 0 : _a.destroy();
92
+ this.navMesh = null;
93
+ }
94
+ createCrowd(params) {
95
+ if (this.crowd) {
96
+ warn('crowd 已经存在,请先调用 disposeCrowd()');
97
+ return this.crowd;
98
+ }
99
+ if (!this.navMesh) {
100
+ warn('navmesh 不存在,请先调用 createSoloNavMesh()');
101
+ return null;
102
+ }
103
+ this.crowd = new Crowd(this.navMesh, params);
104
+ this.ssp.signals.beforeRender.add(this._crowdUpdate);
105
+ return this.crowd;
106
+ }
107
+ disposeCrowd() {
108
+ var _a;
109
+ (_a = this.crowd) === null || _a === void 0 ? void 0 : _a.destroy();
110
+ this.crowd = null;
111
+ this.ssp.signals.beforeRender.remove(this._crowdUpdate);
112
+ }
113
+ createDebugDrawer() {
114
+ if (this.debugDrawer) {
115
+ warn('debug drawer 已经存在,请先调用 disposeDebugDrawer()');
116
+ return this.debugDrawer;
117
+ }
118
+ if (!this.navMesh) {
119
+ warn('navmesh 不存在,请先调用 createSoloNavMesh()');
120
+ return null;
121
+ }
122
+ this.debugDrawer = new DebugDrawer();
123
+ this.debugDrawer.drawNavMesh(this.navMesh, 0);
124
+ this.ssp.addObject(this.debugDrawer);
125
+ return this.debugDrawer;
126
+ }
127
+ disposeDebugDrawer() {
128
+ if (this.debugDrawer) {
129
+ this.debugDrawer.dispose();
130
+ this.ssp.removeObject(this.debugDrawer);
131
+ this.debugDrawer = null;
132
+ }
133
+ }
134
+ createCrowdHelper(params = { agentMaterial: new MeshStandardMaterial({ color: 0x00ff00, }), }) {
135
+ if (this.crowdHelper) {
136
+ warn('crowd helper 已经存在,请先调用 disposeCrowdHelper()');
137
+ return this.crowdHelper;
138
+ }
139
+ if (!this.crowd) {
140
+ warn('crowd 不存在,请先调用 createCrowd()');
141
+ return null;
142
+ }
143
+ this.crowdHelper = new CrowdHelper(this.crowd, params);
144
+ this.ssp.addObject(this.crowdHelper);
145
+ return this.crowdHelper;
146
+ }
147
+ disposeCrowdHelper() {
148
+ if (this.crowdHelper) {
149
+ this.crowdHelper.agentMeshes.forEach((mesh) => {
150
+ mesh.geometry.dispose();
151
+ mesh.material.dispose();
152
+ });
153
+ this.ssp.removeObject(this.crowdHelper);
154
+ }
155
+ }
156
+ dispose() {
157
+ this.disposeSoloNavMesh();
158
+ this.disposeCrowd();
159
+ this.disposeDebugDrawer();
160
+ this.disposeCrowdHelper();
161
+ }
162
+ }
163
+
164
+ export { deInstancingMesh, PathfindingPlugin as default, getVertices };
165
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/utils.ts","../src/index.ts"],"sourcesContent":["import { InstancedMesh, Matrix4, Mesh, Object3D, } from 'three'\nimport { StaticGeometryGenerator, } from 'three-mesh-bvh'\n\nexport function deInstancingMesh ( insMesh: InstancedMesh ) {\n\n const name = insMesh.name\n\n const geometry = insMesh.geometry\n const material = insMesh.material\n\n const count = insMesh.count\n\n const meshes = []\n\n for ( let i = 0; i < count; i++ ) {\n\n const matrix = new Matrix4()\n\n insMesh.getMatrixAt( i, matrix )\n\n const mesh = new Mesh( geometry, material )\n\n mesh.name = `${name}_${i}`\n meshes.push( mesh )\n\n matrix.premultiply( insMesh.matrixWorld )\n mesh.matrix.copy( matrix )\n mesh.matrixWorld.copy( matrix )\n \n\n matrix.decompose( mesh.position, mesh.quaternion, mesh.scale )\n\n }\n\n return meshes\n\n}\n\nexport function getVertices ( objects: Object3D[] ) {\n\n /**\n * traverse all meshes\n */\n const meshes: Mesh[] = []\n\n objects.forEach( ( object ) => {\n\n object.traverse( child => {\n\n if ( child.type === 'Mesh' ) {\n\n if ( child instanceof InstancedMesh ) {\n\n // instanced\n meshes.push( ...deInstancingMesh( child ) )\n \n } else {\n\n // normal\n meshes.push( child as Mesh )\n \n }\n \n }\n \n } )\n \n } )\n\n const staticGenerator = new StaticGeometryGenerator( meshes )\n\n staticGenerator.applyWorldTransforms = true\n staticGenerator.attributes = [ 'position', 'index' ]\n const mergedGeometry = staticGenerator.generate()\n\n const positions = mergedGeometry.attributes.position.array as Float32Array\n const indices = mergedGeometry.index?.array as Uint32Array\n\n return { positions, indices, }\n\n}","import { MeshStandardMaterial, Object3D, } from 'three'\nimport { NavMesh, Crowd, CrowdParams, } from '@recast-navigation/core'\nimport { generateSoloNavMesh, SoloNavMeshGeneratorConfig, } from '@recast-navigation/generators'\nimport { DebugDrawer, CrowdHelper, CrowdHelperParams, } from '@recast-navigation/three'\nimport SoonSpace from 'soonspacejs'\nimport { getVertices, } from './utils'\n\nconst { warn, } = SoonSpace.utils\n\nclass PathfindingPlugin {\n\n navMesh: NavMesh | null = null\n crowd: Crowd | null = null\n debugDrawer: DebugDrawer | null = null\n crowdHelper: CrowdHelper | null = null\n\n constructor ( readonly ssp: SoonSpace ) {}\n\n // solo navmesh\n createSoloNavMesh ( objects: Object3D[], config: Partial<SoloNavMeshGeneratorConfig> = {} ): NavMesh | null {\n\n if ( this.navMesh ) {\n\n warn( 'navmesh 已经存在,请先调用 disposeNavMesh()' )\n return this.navMesh\n \n }\n\n const { positions, indices, } = getVertices( objects )\n\n const result = generateSoloNavMesh( positions, indices, config )\n\n if ( result.success ) {\n\n this.navMesh = result.navMesh\n return this.navMesh\n \n } \n\n return null\n \n }\n\n disposeSoloNavMesh (): void {\n\n this.navMesh?.destroy()\n this.navMesh = null\n \n }\n\n // crowd\n _crowdUpdate = () => {\n\n if ( this.crowd ) {\n\n this.crowd.update( this.ssp.viewport.state.delta )\n this.crowdHelper?.update()\n if ( this.crowd.getActiveAgentCount() > 0 ) this.ssp.render()\n\n }\n \n }\n\n createCrowd ( params: CrowdParams ): Crowd | null {\n\n if ( this.crowd ) {\n\n warn( 'crowd 已经存在,请先调用 disposeCrowd()' )\n return this.crowd\n \n }\n\n if ( !this.navMesh ) {\n\n warn( 'navmesh 不存在,请先调用 createSoloNavMesh()' )\n return null\n \n }\n\n this.crowd = new Crowd( this.navMesh, params )\n this.ssp.signals.beforeRender.add( this._crowdUpdate )\n return this.crowd\n \n }\n\n disposeCrowd (): void {\n\n this.crowd?.destroy()\n this.crowd = null\n this.ssp.signals.beforeRender.remove( this._crowdUpdate )\n \n }\n\n createDebugDrawer (): DebugDrawer | null {\n\n if ( this.debugDrawer ) {\n\n warn( 'debug drawer 已经存在,请先调用 disposeDebugDrawer()' )\n return this.debugDrawer\n \n }\n\n if ( !this.navMesh ) {\n\n warn( 'navmesh 不存在,请先调用 createSoloNavMesh()' )\n return null\n \n }\n\n this.debugDrawer = new DebugDrawer()\n this.debugDrawer.drawNavMesh( this.navMesh, 0 )\n this.ssp.addObject( this.debugDrawer )\n return this.debugDrawer\n \n }\n\n disposeDebugDrawer (): void {\n\n if ( this.debugDrawer ) {\n\n this.debugDrawer.dispose()\n this.ssp.removeObject( this.debugDrawer )\n this.debugDrawer = null\n \n }\n \n }\n\n createCrowdHelper ( params: CrowdHelperParams = { agentMaterial: new MeshStandardMaterial( { color: 0x00ff00, } ), } ): CrowdHelper | null {\n\n if ( this.crowdHelper ) {\n\n warn( 'crowd helper 已经存在,请先调用 disposeCrowdHelper()' )\n return this.crowdHelper\n \n }\n\n if ( !this.crowd ) {\n\n warn( 'crowd 不存在,请先调用 createCrowd()' )\n return null\n \n }\n\n this.crowdHelper = new CrowdHelper( this.crowd, params )\n this.ssp.addObject( this.crowdHelper ) \n return this.crowdHelper\n \n }\n\n disposeCrowdHelper () {\n\n if ( this.crowdHelper ) {\n\n this.crowdHelper.agentMeshes.forEach( ( mesh ) => {\n\n mesh.geometry.dispose()\n ;( mesh.material as MeshStandardMaterial ).dispose()\n \n } )\n this.ssp.removeObject( this.crowdHelper )\n \n }\n \n }\n\n dispose () {\n\n this.disposeSoloNavMesh()\n this.disposeCrowd()\n this.disposeDebugDrawer()\n this.disposeCrowdHelper()\n \n }\n\n}\n\nexport default PathfindingPlugin\nexport * from './utils'"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soonspacejs/plugin-pathfinding",
3
3
  "pluginName": "PathfindingPlugin",
4
- "version": "2.13.12",
4
+ "version": "2.13.14",
5
5
  "description": "Pathfinding plugin for SoonSpace.js",
6
6
  "main": "dist/index.esm.js",
7
7
  "module": "dist/index.esm.js",
@@ -13,12 +13,12 @@
13
13
  ],
14
14
  "author": "xuek,jiangqi",
15
15
  "license": "UNLICENSED",
16
- "gitHead": "aa34f472ae1520b537b0a5a1d67f4a746f41236a",
16
+ "gitHead": "71d91773a54276b7cbb0a0525ba5f921345f121f",
17
17
  "peerDependencies": {
18
18
  "@recast-navigation/core": "^0.38.0",
19
19
  "@recast-navigation/generators": "^0.38.0",
20
20
  "@recast-navigation/three": "^0.38.0",
21
21
  "@recast-navigation/wasm": "^0.38.0",
22
- "soonspacejs": "2.13.12"
22
+ "soonspacejs": "2.13.14"
23
23
  }
24
24
  }