// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include #include #include #include struct UnitCell { float a; float b; float c; float alpha; float beta; float gamma; operator gemmi::UnitCell() const; [[nodiscard]] bool is_finite() const; [[nodiscard]] bool is_close(const UnitCell &ref, float dist_tolerance, float angle_tolerance_deg) const; }; std::ostream &operator<<(std::ostream &output, const UnitCell &in); std::optional MeanUnitCell(const std::vector &cells);