@shopware-ag/dive
Version:
Shopware Spatial Framework
41 lines (40 loc) • 1.25 kB
TypeScript
import { Matrix4, Mesh, Vector3 } from 'three/webgpu';
import { DIVERenderer } from '../../../../../engine/renderer/Renderer.ts';
import { DIVEScene } from '../../../../../engine/scene/Scene.ts';
import { EventDispatcher } from '../../../../../events/index.ts';
/**
* object is undefined when AR world is hit.
*/
export type DIVEHitResult = {
point: Vector3;
matrix: Matrix4;
object?: Mesh;
};
export type DIVEWebXRRaycasterEvents = {
AR_HIT_FOUND: {
hit: DIVEHitResult;
};
AR_HIT_LOST: undefined;
SCENE_HIT_FOUND: {
hit: DIVEHitResult;
};
SCENE_HIT_LOST: undefined;
};
export declare class DIVEWebXRRaycaster extends EventDispatcher<DIVEWebXRRaycasterEvents> {
private _session;
private _initialized;
private _threeRaycaster;
private _arRaycaster;
private _arHitResultBuffer;
private _sceneHitResultBuffer;
private _hasHit;
constructor(session: XRSession, renderer: DIVERenderer, scene: DIVEScene);
dispose(): void;
init(): Promise<this>;
getARIntersections(frame: XRFrame): DIVEHitResult[];
getSceneIntersections(): DIVEHitResult[];
private onARHitFound;
private onARHitLost;
private onSceneHitFound;
private onSceneHitLost;
}