UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

29 lines (28 loc) 886 B
"use strict"; import { MeshBVH, acceleratedRaycast, CENTER } from "./three-mesh-bvh"; export class ThreeMeshBVHHelper { static assignBVH(mesh, bvh) { mesh.raycast = acceleratedRaycast; mesh.geometry.boundsTree = bvh; } static assignDefaultBVHIfNone(mesh) { let bvh = mesh.geometry.boundsTree || this.defaultBVH(mesh); this.assignBVH(mesh, bvh); } static createBVH(mesh, options) { return new MeshBVH(mesh.geometry, options); } static defaultBVH(mesh) { return this.createBVH(mesh, { strategy: CENTER, maxLeafTris: 10, maxDepth: 40, verbose: false }); } static copyBVH(meshDest, meshSrc) { const existingBVH = meshSrc.geometry.boundsTree; if (existingBVH) { meshDest.raycast = acceleratedRaycast; this.assignBVH(meshDest, existingBVH); } } static updateRaycaster(raycaster) { raycaster.firstHitOnly = true; } }