import type { TimelineClock } from '../../core/timeline'; import type { DtypeRef } from './dtype-helpers'; /** * One 6-DoF pose sample. `data` is `[x, y, z, qx, qy, qz, qw]`. * Translation in meters (convention); quaternion unit-length, scalar last. */ export interface PoseSample { ts: number; data: [number, number, number, number, number, number, number]; } export interface PoseViewProps { src: string; clock?: TimelineClock | null; /** Optional dtype id or spec. Informational — passed by `` during dispatch. */ dtype?: DtypeRef; className?: string; /** Display fps. Defaults to 30. */ fps?: number; /** XY extent (± meters) shown on the top-down grid. Defaults to 1. */ gridExtent?: number; } /** * PoseView — rotating colored cube + top-down XY grid with a yaw-aware marker. * * Left: a 3D-looking cube drawn in SVG, with six face colors keyed to * world axes (X=red, Y=green, Z=blue; negative variants darker). The cube * is rotated by the current quaternion using painter's-algorithm face * sorting. Right: a top-down position grid with a trail and a triangular * marker oriented by yaw. * * ## Data format * JSONL lines of shape `{ ts: number, data: [x, y, z, qx, qy, qz, qw] }`. * Quaternion is scalar-last (`qw` at index 6) and must be unit-length. * * ## Hooks used * `useMergedTrack` with a normalizer that splits each 7-tuple into * `"position"` (stride 3) and `"orientation"` (stride 4) tracks. Position * uses `lerp`; orientation uses `slerpQuat`. */ export declare function PoseView({ src, clock, className, fps, gridExtent, }: PoseViewProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=PoseView.d.ts.map