MCPcopy Create free account
hub / github.com/ColmapView/Colmapview.github.io / decodeCameraStateLegacy

Function decodeCameraStateLegacy

src/utils/urlCameraStateCodec.ts:121–151  ·  view source on GitHub ↗
(data: string)

Source from the content-addressed store, hash-verified

119 * Format: camera=px,py,pz,tx,ty,tz,qx,qy,qz,qw
120 */
121export function decodeCameraStateLegacy(data: string): CameraViewState | null {
122 const values = data.split(',').map(v => parseFiniteNumberString(v));
123 if (values.length !== 10 || values.some(value => value === null)) return null;
124
125 const [px, py, pz, tx, ty, tz, qx, qy, qz, qw] = values as [
126 number,
127 number,
128 number,
129 number,
130 number,
131 number,
132 number,
133 number,
134 number,
135 number,
136 ];
137
138 const quatLength = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);
139 if (quatLength < 0.9 || quatLength > 1.1) return null;
140
141 return {
142 position: [px, py, pz],
143 target: [tx, ty, tz],
144 quaternion: [qx, qy, qz, qw],
145 distance: Math.sqrt(
146 (px - tx) * (px - tx) +
147 (py - ty) * (py - ty) +
148 (pz - tz) * (pz - tz)
149 ),
150 };
151}

Callers 2

Calls 1

parseFiniteNumberStringFunction · 0.90

Tested by

no test coverage detected