From e2ab97c09bc66c9cbe1bb98caeb99105e28859f2 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Thu, 5 Feb 2026 11:21:17 +0100 Subject: [PATCH] XtalOptimizer: Use rotation angle from spot (so it should work for centroid angles) --- image_analysis/geom_refinement/XtalOptimizer.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/image_analysis/geom_refinement/XtalOptimizer.cpp b/image_analysis/geom_refinement/XtalOptimizer.cpp index 44fd8dc8..bf5564ee 100644 --- a/image_analysis/geom_refinement/XtalOptimizer.cpp +++ b/image_analysis/geom_refinement/XtalOptimizer.cpp @@ -450,20 +450,13 @@ bool XtalOptimizerInternal(XtalOptimizerData &data, if (!data.index_ice_rings && pt.ice_ring) continue; - Eigen::Matrix3d gonio_back_rot = Eigen::Matrix3d::Identity(); - - Coord axis = Coord(1,0,0); float angle_rad = 0.0; - Coord recip = data.geom.DetectorToRecip(pt.x, pt.y); + Coord recip = pt.ReciprocalCoord(data.geom); if (data.axis) { - const float angle_deg = data.axis->GetAngle_deg(pt.image) + data.axis->GetWedge_deg() / 2.0f; - auto rot = data.axis->GetTransformationAngle(angle_deg); - recip = rot * recip; - - angle_rad = angle_deg * M_PI / 180.0; - axis = data.axis->GetAxis(); + recip = data.axis->GetTransformationAngle(pt.phi) * recip; + angle_rad = pt.phi * M_PI / 180.0; } double h_fp = recip * vec0;