UNPKG

@ar-js-org/ar.js-threejs

Version:

AR.js (THREEx, ARjs) modular package - Typescript version

155 lines (154 loc) 4.99 kB
import { Renderer, Camera, Matrix4, Object3D, EventListener, EventDispatcher } from "three"; export interface IArBaseControls { update(object3d: Object3D): void; name(): string; } export interface IArMarkerControls { dispose(): void; updateWithModelViewMatrix(modelViewMatrix: Matrix4): boolean; name(): string; object3d: Object3D; } export interface IArSmoothedControls { parameters: ISmoothedControlsParameters; update(targetObject3d: any): void; } export interface IArToolkitContext { parameters: IContextParameters; arController: any; _artoolkitProjectionAxisTransformMatrix: Matrix4; dispatchEvent(event: any): void; addEventListener<T extends string>(type: T, listener: EventListener<any, T, EventDispatcher<any>>): void; hasEventListener<T extends string>(type: T, listener: EventListener<any, T, EventDispatcher<any>>): boolean; removeEventListener<T extends string>(type: T, listener: EventListener<any, T, EventDispatcher<any>>): void; createDefaultCamera(trackingBackend: string): void; init(onCompleted: Function): void; update(srcElement: HTMLImageElement | HTMLVideoElement): void; addMarker(arMarkerControls: any): void; removeMarker(arMarkerControls: any): void; getProjectionMatrix(): Matrix4; } export interface IArToolkitProfile { sourceParameters: ISourceParameters; contextParameters: IContextParameters; defaultMarkerParameters: IDefaultMarkerParameters; reset(): void; performance(label: string): void; defaultMarker(trackingBackend: string): void; sourceWebcam(): this; sourceVideo(url: string): this; sourceImage(url: string): this; trackingBackend(trackingBackend: string): void; changeMatrixMode(changeMatrixMode: string): void; trackingMethod(trackingMethod: string): void; checkIfValid(): void; } export interface IArToolkitSource { ready: boolean; domElement: HTMLImageElement | HTMLVideoElement; parameters: ISourceParameters; init(onReady: Function, onError: Function): this; domElementWidth(): number; domElementHeight(): number; onResizeElement(): void; copyElementSizeTo(otherElement: any): void; copySizeTo(): void; onResize(arToolkitContext: IArToolkitContext, renderer: Renderer, camera: Camera): void; } export interface IArMarkerControlsParameters { size?: number; type?: string; patternUrl?: string; barcodeValue?: number; descriptorsUrl?: string; changeMatrixMode?: string; minConfidence?: number; poseMatrix?: Array<number>; smooth?: boolean; smoothCount?: number; smoothTolerance?: number; smoothThreshold?: number; } export interface IContextParameters { canvasWidth?: number; canvasHeight?: number; debug?: boolean; cameraParametersUrl?: string; detectionMode?: string; maxDetectionRate?: number; matrixCodeType?: string; patternRatio?: number; labelingMode?: string; trackingBackend?: string; imageSmoothingEnabled?: boolean; } export interface IDefaultMarkerParameters { type: string; patternUrl: string; changeMatrixMode: string; markersAreaEnabled: boolean; } export interface ISmoothedControlsParameters { lerpPosition: number; lerpQuaternion: number; lerpScale: number; lerpStepDelay: number; minVisibleDelay: number; minUnvisibleDelay: number; } export interface ISourceParameters { sourceType?: string; sourceUrl?: string; deviceId?: string; sourceWidth: number; sourceHeight: number; displayWidth?: number; displayHeight?: number; } export interface ISmoothedControlsParameters { lerpPosition: number; lerpQuaternion: number; lerpScale: number; lerpStepDelay: number; minVisibleDelay: number; minUnvisibleDelay: number; } export interface IUserMediaConstraints { audio: boolean; video: { width: { min?: number; max?: number; ideal: number; }; height: { min?: number; max?: number; ideal: number; }; facingMode: string; deviceId: { exact: string; }; }; } export interface IArMarkerAreaControlsParameters { subMarkersControls: ISubMarkerControls[]; subMarkerPoses: Matrix4[]; changeMatrixMode: string; } export interface IArMarkerAreaControls { parameters: IArMarkerAreaControlsParameters; subMarkersControls: ISubMarkerControls[]; updateSmoothedControls(smooth: any, lerps?: any): void; } export interface ISubMarkerControls { parameters: ISubMarkerControlsParameters; poseMatrix?: Array<number>; object3d?: Object3D; dispose(): void; } export interface ISubMarkerControlsParameters { type?: string; patternUrl?: string; }