UNPKG

v3d-web-realbits

Version:

Single camera motion-tracking in browser

83 lines (82 loc) 3.25 kB
import { Nullable } from "@babylonjs/core"; import { HolisticConfig } from "@mediapipe/holistic"; import { Options as FMOptions } from "@mediapipe/face_mesh"; import { HolisticOptions } from "./mediapipe"; import { VRMManager } from "v3d-core-realbits/dist/src/importer/babylon-vrm-loader/src"; import { V3DCore } from "v3d-core-realbits/dist/src"; import { CloneableQuaternionMap } from "./helper/quaternion"; export interface HolisticState { ready: boolean; activeEffect: string; holisticUpdate: boolean; } export interface FaceMeshState { ready: boolean; activeEffect: string; faceMeshUpdate: boolean; } export interface BoneState { boneRotations: Nullable<CloneableQuaternionMap>; bonesNeedUpdate: boolean; } export interface BoneOptions { blinkLinkLR: boolean; expression: "Neutral" | "Happy" | "Angry" | "Sad" | "Relaxed" | "Surprised"; irisLockX: boolean; lockFinger: boolean; lockArm: boolean; lockLeg: boolean; resetInvisible: boolean; } export declare class V3DWeb { readonly videoElement?: Nullable<HTMLVideoElement> | undefined; readonly webglCanvasElement?: Nullable<HTMLCanvasElement> | undefined; readonly videoCanvasElement?: Nullable<HTMLCanvasElement> | undefined; readonly controlsElement?: Nullable<HTMLDivElement> | undefined; private readonly holisticConfig?; private readonly loadingDiv?; private readonly useMotionUpdate?; private readonly useFaceMesh?; private readonly worker; private workerPose; private boneState; private _boneOptions; get boneOptions(): BoneOptions; set boneOptions(value: BoneOptions); private readonly _updateBufferCallback; private customLoadingScreen; private _v3DCore; get v3DCore(): Nullable<V3DCore>; private _vrmManager; get vrmManager(): Nullable<VRMManager>; private readonly engine; private _vrmFile; set vrmFile(value: File | string); private readonly fpsControl; private readonly holistic; private holisticState; private _holisticOptions; get holisticOptions(): HolisticOptions; set holisticOptions(value: HolisticOptions); private readonly faceMesh; private faceMeshState; private _faceMeshOptions; get faceMeshOptions(): FMOptions; set faceMeshOptions(value: FMOptions); private _cameraList; get cameraList(): MediaDeviceInfo[]; constructor(vrmFilePath: string, videoElement?: Nullable<HTMLVideoElement> | undefined, webglCanvasElement?: Nullable<HTMLCanvasElement> | undefined, videoCanvasElement?: Nullable<HTMLCanvasElement> | undefined, controlsElement?: Nullable<HTMLDivElement> | undefined, holisticConfig?: HolisticConfig | undefined, loadingDiv?: Nullable<HTMLDivElement> | undefined, useMotionUpdate?: Nullable<boolean> | undefined, useFaceMesh?: Nullable<boolean> | undefined, afterInitCallback?: (...args: any[]) => any); getVideoDevices(): Promise<MediaDeviceInfo[]>; getCamera(idx: number): Promise<void>; /** * Close and dispose the application (BabylonJS and MediaPipe) */ close(): void; /** * Reset poses and holistic */ reset(): void; switchSource(idx: number): void; private switchModel; } export default V3DWeb;