import { TAbstractService } from '../../Abstract'; import { TActor } from '../../Actor'; import { TSceneWrapper } from '../../Scene'; import { BufferGeometry, Intersection, Raycaster } from 'three'; import { MeshBVH } from 'three-mesh-bvh'; import { TBvhOptions } from './TBvhOptions'; export type TBvhService = TAbstractService & Readonly<{ computeBVHBoundsTree: (geometry: BufferGeometry, options?: TBvhOptions) => MeshBVH; disposeBVHBoundsTree: (geometry: BufferGeometry) => void; raycastWithBvh: (actor: TActor, raycaster: Raycaster, intersects: Array) => void; createBvhForActor: (actor: TActor, options?: TBvhOptions) => void; _debugVisualizeBvhForActor: (actor: TActor, sceneW: TSceneWrapper, depth?: number) => void; _debugVisualizeBvhForScene: (sceneW: TSceneWrapper, depth?: number) => void; }>;