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

Function writeRigsBinary

src/parsers/colmapBinaryWriters.ts:111–148  ·  view source on GitHub ↗
(rigs: Map<RigId, Rig>)

Source from the content-addressed store, hash-verified

109 * Write rigs.bin.
110 */
111export function writeRigsBinary(rigs: Map<RigId, Rig>): ArrayBuffer {
112 const writer = new BinaryWriter();
113
114 writer.writeUint64FromNumber(rigs.size);
115
116 for (const rigId of sortedKeys(rigs)) {
117 const rig = rigs.get(rigId)!;
118
119 writer.writeUint32(rigId);
120 writer.writeUint32(rig.sensors.length);
121
122 if (rig.sensors.length > 0) {
123 const refSensorType = rig.refSensorId?.type ?? 0;
124 const refSensorId = rig.refSensorId?.id ?? 0;
125 writer.writeInt32(refSensorType);
126 writer.writeUint32(refSensorId);
127
128 for (let i = 1; i < rig.sensors.length; i++) {
129 const sensor = rig.sensors[i];
130 writer.writeInt32(sensor.sensorId.type);
131 writer.writeUint32(sensor.sensorId.id);
132 writer.writeUint8(sensor.hasPose ? 1 : 0);
133
134 if (sensor.hasPose && sensor.pose) {
135 writer.writeFloat64(sensor.pose.qvec[0]);
136 writer.writeFloat64(sensor.pose.qvec[1]);
137 writer.writeFloat64(sensor.pose.qvec[2]);
138 writer.writeFloat64(sensor.pose.qvec[3]);
139 writer.writeFloat64(sensor.pose.tvec[0]);
140 writer.writeFloat64(sensor.pose.tvec[1]);
141 writer.writeFloat64(sensor.pose.tvec[2]);
142 }
143 }
144 }
145 }
146
147 return writer.toArrayBuffer();
148}
149
150/**
151 * Write frames.bin.

Calls 8

writeUint64FromNumberMethod · 0.95
writeUint32Method · 0.95
writeInt32Method · 0.95
writeUint8Method · 0.95
writeFloat64Method · 0.95
toArrayBufferMethod · 0.95
sortedKeysFunction · 0.90
getMethod · 0.80

Tested by

no test coverage detected