68 lines
1.3 KiB
TypeScript
68 lines
1.3 KiB
TypeScript
export interface HandTrackingLandmark {
|
|
x: number;
|
|
y: number;
|
|
z: number;
|
|
}
|
|
|
|
export interface HandTrackingHand {
|
|
x: number;
|
|
y: number;
|
|
z: number;
|
|
landmarks: HandTrackingLandmark[];
|
|
handedness: string;
|
|
isFist: boolean;
|
|
score: number;
|
|
}
|
|
|
|
export type HandTrackingUsageStatus = "inactive" | "available" | "active";
|
|
|
|
export type HandTrackingStatus =
|
|
| "idle"
|
|
| "requesting_camera"
|
|
| "starting_camera"
|
|
| "connecting_server"
|
|
| "connecting"
|
|
| "connected"
|
|
| "disconnected"
|
|
| "error";
|
|
|
|
export interface HandTrackingSnapshot {
|
|
hands: HandTrackingHand[];
|
|
status: HandTrackingStatus;
|
|
usageStatus: HandTrackingUsageStatus;
|
|
serverStatus: string | null;
|
|
error: string | null;
|
|
}
|
|
|
|
export interface HandTrackingFrameMessage {
|
|
type: "frame";
|
|
timestamp: number;
|
|
width: number;
|
|
height: number;
|
|
image: string;
|
|
}
|
|
|
|
export interface HandTrackingHandsMessage {
|
|
type: "hands";
|
|
timestamp: number;
|
|
hands: HandTrackingHand[];
|
|
}
|
|
|
|
export interface HandTrackingStatusMessage {
|
|
type: "status";
|
|
timestamp: number;
|
|
status: string;
|
|
}
|
|
|
|
export interface HandTrackingErrorMessage {
|
|
type: "error";
|
|
timestamp: number;
|
|
hands: HandTrackingHand[];
|
|
message: string;
|
|
}
|
|
|
|
export type HandTrackingServerMessage =
|
|
| HandTrackingHandsMessage
|
|
| HandTrackingStatusMessage
|
|
| HandTrackingErrorMessage;
|