@drawcall/charta 0.1.19 → 0.1.20
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/grass/index.d.ts.map +1 -1
- package/dist/grass/index.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/pillars/index.d.ts.map +1 -1
- package/dist/pillars/index.js +4 -0
- package/dist/tiles/index.d.ts.map +1 -1
- package/dist/tiles/index.js +4 -0
- package/dist/utils/bvh.d.ts +11 -0
- package/dist/utils/bvh.d.ts.map +1 -0
- package/dist/utils/bvh.js +20 -0
- package/dist/utils/instanced-mesh-group.d.ts.map +1 -1
- package/dist/utils/instanced-mesh-group.js +6 -0
- package/dist/walls/index.d.ts.map +1 -1
- package/dist/walls/index.js +4 -0
- package/dist/water/index.d.ts.map +1 -1
- package/dist/water/index.js +4 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grass/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,QAAQ,EAMT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAO9E,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,qBAAa,SAAU,SAAQ,aAAa;gBAExC,WAAW,EAAE,WAAW,EACxB,QAAQ,GAAE,QAAkC,EAC5C,IAAI,GAAE,YAAiB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grass/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,QAAQ,EAMT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAO9E,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,qBAAa,SAAU,SAAQ,aAAa;gBAExC,WAAW,EAAE,WAAW,EACxB,QAAQ,GAAE,QAAkC,EAC5C,IAAI,GAAE,YAAiB;CAuP1B"}
|
package/dist/grass/index.js
CHANGED
|
@@ -182,5 +182,7 @@ export class GrassMesh extends InstancedMesh {
|
|
|
182
182
|
this.instanceMatrix.needsUpdate = true;
|
|
183
183
|
if (this.instanceColor)
|
|
184
184
|
this.instanceColor.needsUpdate = true;
|
|
185
|
+
// Disable raycasting entirely for grass (no-op)
|
|
186
|
+
this.raycast = () => { };
|
|
185
187
|
}
|
|
186
188
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export * from "./pillars/index.js";
|
|
|
10
10
|
export * from "./water/index.js";
|
|
11
11
|
export * from "./locations.js";
|
|
12
12
|
export * from "./utils/instanced-mesh-group.js";
|
|
13
|
+
export * from "./utils/bvh.js";
|
|
13
14
|
export * from "./assets/loader.js";
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pillars/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,QAAQ,EAMT,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pillars/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,QAAQ,EAMT,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,CAAA;AAYhF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,qBAAa,UAAW,SAAQ,aAAa;gBAC/B,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAE,QAAkC,EAAE,OAAO,GAAE,iBAAsB;CA4LpH"}
|
package/dist/pillars/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { buildTextureArrayFromAssets } from '../utils/texture.js';
|
|
|
4
4
|
import { buildPillarMeshMaterial } from './material.js';
|
|
5
5
|
import { ChartaError } from '../errors.js';
|
|
6
6
|
import { pillarSchema } from '../schemas.js';
|
|
7
|
+
import { setupBVH, acceleratedRaycast } from '../utils/bvh.js';
|
|
7
8
|
export class PillarMesh extends InstancedMesh {
|
|
8
9
|
constructor(interpreter, material = new MeshBasicMaterial(), options = {}) {
|
|
9
10
|
const rows = interpreter.getRows();
|
|
@@ -160,5 +161,8 @@ export class PillarMesh extends InstancedMesh {
|
|
|
160
161
|
const textureArray = buildTextureArrayFromAssets(usedTextures);
|
|
161
162
|
buildPillarMeshMaterial(this.material, textureArray);
|
|
162
163
|
}
|
|
164
|
+
// Setup BVH for accelerated raycasting
|
|
165
|
+
setupBVH(this.geometry);
|
|
166
|
+
this.raycast = acceleratedRaycast;
|
|
163
167
|
}
|
|
164
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,IAAI,EAOL,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAuB,MAAM,eAAe,CAAA;AAIlE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAc,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,IAAI,EAOL,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAuB,MAAM,eAAe,CAAA;AAIlE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAc,MAAM,eAAe,CAAA;AAGvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA;AAEtC,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAyCD,qBAAa,SAAU,SAAQ,IAAI,CAAC,aAAa,CAAC;gBACpC,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAE,QAAkC,EAAE,OAAO,GAAE,gBAAqB;CAqInH"}
|
package/dist/tiles/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { buildTilesMaterial } from './material.js';
|
|
|
4
4
|
import { ChartaError } from '../errors.js';
|
|
5
5
|
import { buildTextureArrayFromAssets } from '../utils/texture.js';
|
|
6
6
|
import { groundSchema, ceilingSchema, wallSchema } from '../schemas.js';
|
|
7
|
+
import { setupBVH, acceleratedRaycast } from '../utils/bvh.js';
|
|
7
8
|
export { groundSchema, ceilingSchema };
|
|
8
9
|
function resolveHeights(position, items, interpreter, reverse) {
|
|
9
10
|
items = [...items];
|
|
@@ -133,5 +134,8 @@ export class TilesMesh extends Mesh {
|
|
|
133
134
|
this.material = buildTilesMaterial(material, buildTextureArrayFromAssets(texturesInOrder));
|
|
134
135
|
}
|
|
135
136
|
}
|
|
137
|
+
// Setup BVH for accelerated raycasting
|
|
138
|
+
setupBVH(this.geometry);
|
|
139
|
+
this.raycast = acceleratedRaycast;
|
|
136
140
|
}
|
|
137
141
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { acceleratedRaycast } from 'three-mesh-bvh';
|
|
2
|
+
import type { BufferGeometry } from 'three';
|
|
3
|
+
/**
|
|
4
|
+
* Sets up BVH (Bounding Volume Hierarchy) on a geometry for accelerated raycasting.
|
|
5
|
+
* Call this after geometry is created, then assign acceleratedRaycast to the mesh's raycast method.
|
|
6
|
+
*
|
|
7
|
+
* @param geometry - The BufferGeometry to compute BVH for. If undefined or empty, this is a no-op.
|
|
8
|
+
*/
|
|
9
|
+
export declare function setupBVH(geometry: BufferGeometry | undefined): void;
|
|
10
|
+
export { acceleratedRaycast };
|
|
11
|
+
//# sourceMappingURL=bvh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bvh.d.ts","sourceRoot":"","sources":["../../src/utils/bvh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwC,MAAM,gBAAgB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAWnE;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { acceleratedRaycast, computeBoundsTree, disposeBoundsTree } from 'three-mesh-bvh';
|
|
2
|
+
/**
|
|
3
|
+
* Sets up BVH (Bounding Volume Hierarchy) on a geometry for accelerated raycasting.
|
|
4
|
+
* Call this after geometry is created, then assign acceleratedRaycast to the mesh's raycast method.
|
|
5
|
+
*
|
|
6
|
+
* @param geometry - The BufferGeometry to compute BVH for. If undefined or empty, this is a no-op.
|
|
7
|
+
*/
|
|
8
|
+
export function setupBVH(geometry) {
|
|
9
|
+
if (!geometry)
|
|
10
|
+
return;
|
|
11
|
+
// Skip BVH for empty geometries (no index or no position attribute)
|
|
12
|
+
const index = geometry.getIndex();
|
|
13
|
+
const position = geometry.getAttribute('position');
|
|
14
|
+
if (!index || index.count === 0 || !position || position.count === 0)
|
|
15
|
+
return;
|
|
16
|
+
geometry.computeBoundsTree = computeBoundsTree;
|
|
17
|
+
geometry.disposeBoundsTree = disposeBoundsTree;
|
|
18
|
+
geometry.computeBoundsTree();
|
|
19
|
+
}
|
|
20
|
+
export { acceleratedRaycast };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instanced-mesh-group.d.ts","sourceRoot":"","sources":["../../src/utils/instanced-mesh-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAQ,QAAQ,EAAS,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"instanced-mesh-group.d.ts","sourceRoot":"","sources":["../../src/utils/instanced-mesh-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAQ,QAAQ,EAAS,MAAM,OAAO,CAAC;AAG7E,UAAU,kBAAkB;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,OAAO,EAAE,kBAAkB,EAAE,CAAM;gBAEvB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IAmDtE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAiB1C;;;OAGG;IACH,OAAO;CAOR"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Group, InstancedMesh, Matrix4 } from "three";
|
|
2
|
+
import { setupBVH, acceleratedRaycast } from "./bvh.js";
|
|
2
3
|
export class InstancedMeshGroup extends Group {
|
|
3
4
|
entries = [];
|
|
4
5
|
constructor(object, count, matrices) {
|
|
@@ -29,6 +30,11 @@ export class InstancedMeshGroup extends Group {
|
|
|
29
30
|
this.setMatrixAt(i, matrices[i]);
|
|
30
31
|
}
|
|
31
32
|
}
|
|
33
|
+
// Setup BVH for accelerated raycasting on all child InstancedMeshes
|
|
34
|
+
for (const entry of this.entries) {
|
|
35
|
+
setupBVH(entry.mesh.geometry);
|
|
36
|
+
entry.mesh.raycast = acceleratedRaycast;
|
|
37
|
+
}
|
|
32
38
|
}
|
|
33
39
|
setMatrixAt(index, matrix) {
|
|
34
40
|
const instanceMatrix = new Matrix4();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/walls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,IAAI,EAGJ,YAAY,EAEZ,YAAY,EAOb,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,OAAO,EAAe,aAAa,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAGL,UAAU,EACV,YAAY,EACZ,UAAU,EACX,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/walls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,IAAI,EAGJ,YAAY,EAEZ,YAAY,EAOb,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,OAAO,EAAe,aAAa,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAGL,UAAU,EACV,YAAY,EACZ,UAAU,EACX,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA;AAK/C,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAed,CAAA;AAEV,eAAO,MAAM,+BAA+B,QAAQ,CAAA;AAEpD,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACxD,MAAM,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,EACtD,GAAG,EAAE,aAAa;YAsFO,YAAY;UACd,YAAY;;;cAwDpC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,qBAAa,QAAS,SAAQ,IAAI;gBACpB,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAE,QAAkC,EAAE,OAAO,GAAE,eAAoB;CAkTlH;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAGrG"}
|
package/dist/walls/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { buildTextureArrayFromAssets } from '../utils/texture.js';
|
|
|
5
5
|
import { buildWallMeshMaterial } from './material.js';
|
|
6
6
|
import { ChartaError } from '../errors.js';
|
|
7
7
|
import { groundSchema, ceilingSchema, wallSchema, windowSchema, doorSchema, } from '../schemas.js';
|
|
8
|
+
import { setupBVH, acceleratedRaycast } from '../utils/bvh.js';
|
|
8
9
|
export { wallSchema, windowSchema, doorSchema };
|
|
9
10
|
const eulerHelper = new Euler();
|
|
10
11
|
const scaleHelper = new Vector3(1, 1, 1);
|
|
@@ -385,6 +386,9 @@ export class WallMesh extends Mesh {
|
|
|
385
386
|
const textureArray = buildTextureArrayFromAssets(usedTextures);
|
|
386
387
|
buildWallMeshMaterial(this.material, textureArray);
|
|
387
388
|
}
|
|
389
|
+
// Setup BVH for accelerated raycasting
|
|
390
|
+
setupBVH(this.geometry);
|
|
391
|
+
this.raycast = acceleratedRaycast;
|
|
388
392
|
}
|
|
389
393
|
}
|
|
390
394
|
export function isLayerConnectedToWall(wallTopY, wallBotY, y, tileSize) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/water/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAY,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/water/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAY,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAC;AAEF,qBAAa,SAAU,SAAQ,IAAI;gBACrB,WAAW,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB;IAwDpE,OAAO,IAAI,IAAI;CAMhB;AAED,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA"}
|
package/dist/water/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Mesh, Material } from "three";
|
|
2
2
|
import { TilesGeometry } from "../tiles/geometry.js";
|
|
3
3
|
import { waterSchema } from "../schemas.js";
|
|
4
|
+
import { setupBVH, acceleratedRaycast } from "../utils/bvh.js";
|
|
4
5
|
export class WaterMesh extends Mesh {
|
|
5
6
|
constructor(interpreter, options = {}) {
|
|
6
7
|
const rows = interpreter.getRows();
|
|
@@ -45,6 +46,9 @@ export class WaterMesh extends Mesh {
|
|
|
45
46
|
super(geometry);
|
|
46
47
|
this.renderOrder = 1;
|
|
47
48
|
this.frustumCulled = true;
|
|
49
|
+
// Setup BVH for accelerated raycasting
|
|
50
|
+
setupBVH(this.geometry);
|
|
51
|
+
this.raycast = acceleratedRaycast;
|
|
48
52
|
}
|
|
49
53
|
dispose() {
|
|
50
54
|
this.geometry.dispose();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drawcall/charta",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20",
|
|
4
4
|
"author": "Bela Bohlender",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://drawcall.ai",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"fft.js": "^4.0.4",
|
|
26
26
|
"imurmurhash": "^0.1.4",
|
|
27
27
|
"seedrandom": "^3.0.5",
|
|
28
|
+
"three-mesh-bvh": "^0.8.0",
|
|
28
29
|
"zod": "^4.1.12"
|
|
29
30
|
},
|
|
30
31
|
"peerDependencies": {
|