v1.0.0-rc.91

This commit is contained in:
2025-10-20 20:43:44 +02:00
parent 6524365ffa
commit 061152279c
260 changed files with 4856 additions and 1063 deletions
+25 -3
View File
@@ -241,6 +241,7 @@ inline void CBOR_ENC(CborEncoder &encoder, const Reflection& r) {
CBOR_ENC(mapEncoder, "bkg", r.bkg);
CBOR_ENC(mapEncoder, "sigma", r.sigma);
CBOR_ENC(mapEncoder, "image", r.image_number);
CBOR_ENC(mapEncoder, "rp", r.dist_ewald);
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
}
@@ -411,6 +412,28 @@ inline void CBOR_ENC(CborEncoder &encoder, const char* key, const UnitCell &val)
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
}
// Add encoder for LatticeMessage
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const LatticeMessage &val) {
CborEncoder mapEncoder;
cborErr(cbor_encode_text_stringz(&encoder, key));
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 4));
CBOR_ENC(mapEncoder, "centering", std::string(1, val.centering));
CBOR_ENC(mapEncoder, "niggli_class", val.niggli_class);
const char* cs_name = "triclinic";
switch (val.crystal_system) {
case gemmi::CrystalSystem::Triclinic: cs_name = "triclinic"; break;
case gemmi::CrystalSystem::Monoclinic: cs_name = "monoclinic"; break;
case gemmi::CrystalSystem::Orthorhombic:cs_name = "orthorhombic";break;
case gemmi::CrystalSystem::Tetragonal: cs_name = "tetragonal"; break;
case gemmi::CrystalSystem::Trigonal: cs_name = "trigonal"; break;
case gemmi::CrystalSystem::Hexagonal: cs_name = "hexagonal"; break;
case gemmi::CrystalSystem::Cubic: cs_name = "cubic"; break;
}
CBOR_ENC(mapEncoder, "system", std::string(cs_name));
CBOR_ENC(mapEncoder, "primitive_lattice", val.primitive.GetVector());
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
}
inline nlohmann::json CBOR_ENC_ROI_CONFIG(const std::vector<ROIConfig> &roi) {
nlohmann::json j;
for (const auto &r: roi) {
@@ -520,9 +543,6 @@ inline void CBOR_ENC_START_USER_DATA(CborEncoder& encoder, const char* key,
case GeomRefinementAlgorithmEnum::BeamCenter:
j["geom_refinement_algorithm"] = "beam_center";
break;
case GeomRefinementAlgorithmEnum::BeamCenterSymmetry:
j["geom_refinement_algorithm"] = "beam_center_tetragonal";
break;
default:
j["geom_refinement_algorithm"] = "none";
break;
@@ -678,6 +698,8 @@ void CBORStream2Serializer::SerializeImageInternal(CborEncoder &mapEncoder, cons
CBOR_ENC(mapEncoder, "indexing_unit_cell", message.indexing_unit_cell);
CBOR_ENC(mapEncoder, "xfel_pulse_id", message.xfel_pulse_id);
CBOR_ENC(mapEncoder, "xfel_event_code", message.xfel_event_code);
if (message.lattice_type)
CBOR_ENC(mapEncoder, "lattice_type", message.lattice_type.value());
CBOR_ENC(mapEncoder, "jf_info", message.jf_info);
CBOR_ENC(mapEncoder, "receiver_aq_dev_delay", message.receiver_aq_dev_delay);
CBOR_ENC(mapEncoder, "receiver_free_send_buf", message.receiver_free_send_buf);